addEvent(window, 'load', initForm);

var highlight_array = new Array();

function initForm(){
	initializeFocus();
	ifInstructs();
	resizeSafariSelects();
}

// for radio and checkboxes, they have to be cleared manually, so they are added to the
// global array highlight_array so we dont have to loop through the dom every time.
function initializeFocus(){
	fields = getElementsByClassName(document, "*", "field");
	for(i = 0; i < fields.length; i++) {
		if(fields[i].type == 'radio' || fields[i].type == 'checkbox' || fields[i].type == 'file') {
			fields[i].onclick = function(){clearSafariRadios(); addClassName(this.parentNode.parentNode, "focused", true)};
			fields[i].onfocus = function(){clearSafariRadios(); addClassName(this.parentNode.parentNode, "focused", true)};
			highlight_array.splice(highlight_array.length,0,fields[i]);
		}
		else {
			fields[i].onfocus = function(){clearSafariRadios();addClassName(this.parentNode.parentNode, "focused", true)};
			fields[i].onblur = function(){removeClassName(this.parentNode.parentNode, "focused")};
		}
	}
}

function clearSafariRadios() {
	for(var i = 0; i < highlight_array.length; i++) {
		removeClassName(highlight_array[i].parentNode.parentNode, 'focused');
	}
}

function resizeSafariSelects(){
	var detect = navigator.userAgent.toLowerCase();
	if(detect.indexOf('safari') + 1){
		var container = document.getElementsByTagName('body');
		addClassName(container[0], 'safari', true)
	}
}

function ifInstructs(){
	var container = document.getElementById('public');
	if(container){
		removeClassName(container,'noI');
		var instructs = getElementsByClassName(document,"*","instruct");
		if((container.offsetWidth <= 450) || (instructs == '')){
			addClassName(container,'noI',true);
		}
	}
}

/*--------------------------------------------------------------------------*/

//http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];		
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}	
	}
	return (arrReturnElements)
}

//http://www.bigbold.com/snippets/posts/show/2630
function addClassName(objElement, strClass, blnMayAlreadyExist){
   if ( objElement.className ){
      var arrList = objElement.className.split(' ');
      if ( blnMayAlreadyExist ){
         var strClassUpper = strClass.toUpperCase();
         for ( var i = 0; i < arrList.length; i++ ){
            if ( arrList[i].toUpperCase() == strClassUpper ){
               arrList.splice(i, 1);
               i--;
             }
           }
      }
      arrList[arrList.length] = strClass;
      objElement.className = arrList.join(' ');
   }
   else{  
      objElement.className = strClass;
      }
}

//http://www.bigbold.com/snippets/posts/show/2630
function removeClassName(objElement, strClass){
   if ( objElement.className ){
      var arrList = objElement.className.split(' ');
      var strClassUpper = strClass.toUpperCase();
      for ( var i = 0; i < arrList.length; i++ ){
         if ( arrList[i].toUpperCase() == strClassUpper ){
            arrList.splice(i, 1);
            i--;
         }
      }
      objElement.className = arrList.join(' ');
   }
}

//http://ejohn.org/projects/flexible-javascript-events/
function addEvent( obj, type, fn ) {
  if ( obj.attachEvent ) {
    obj["e"+type+fn] = fn;
    obj[type+fn] = function() { obj["e"+type+fn]( window.event ) };
    obj.attachEvent( "on"+type, obj[type+fn] );
  } 
  else{
    obj.addEventListener( type, fn, false );	
  }
}
function setAddressPopup(destObject)
{
	//alert (destObject);
	popup = window.open("addresschooser.php?obj=" + destObject.id,"", "toolbar=0,scrollbars=0,location=0,statusbar=1,menubar=0,resizable=0,width=600,height=600");
}
function checkUploadForm()
{
	
	var inputs = document.getElementsByTagName('input');
	var count = 1;
	for (i=0; i < inputs.length; i++)
	{
		if(inputs[i].getAttribute('type') == 'text')
		{
			if (inputs[i].getAttribute('name').substr(0, 5) == 'title' && inputs[i].value == '')
			{
				alert ("Please enter in a title for each piece of media");
				return false;
			}
			else if (inputs[i].getAttribute('name').substr(0, 7) == 'address' && inputs[i].value == '')
			{
				alert("Please select an address for each piece of media");
				return false;
			}
		}
	}
	return true;
	

}
function setValues(startIndex)
{
	//document.getElementById("setvalues").checked);
	/*while (document.getElementById("address[" + i + "]") != null)
	{
		if (document.getElementById("setvalues").checked == true)
		{
			document.getElementById("address[" + i + "]").value = document.getElementById("address[0]").value;
			document.getElementById("title[" + i + "]").value = document.getElementById("title[0]").value + " " + i;
			document.getElementById("tags[" + i + "]").value = document.getElementById("tags[0]").value;
			document.getElementById("blurb[" + i + "]").value = document.getElementById("blurb[0]").value;
			document.getElementById("privacy[" + i + "]").value = document.getElementById("privacy[0]").value;
		}
		else
		{

			document.getElementById("address[" + i + "]").value = "";
			document.getElementById("title[" + i + "]").value = "";
			document.getElementById("tags[" + i + "]").value = "";
			document.getElementById("blurb[" + i + "]").value = "";
		}
		i = i*1 + 1;
	}*/
	var inputs = document.getElementsByTagName('input');
	var count = 1;
	for (i=0; i < inputs.length; i++)
	{
		if(inputs[i].getAttribute('type') == 'text' && inputs[i].getAttribute('name').substr(0, 5) == 'title')
		{
			index = inputs[i].getAttribute('name').substring(6, inputs[i].getAttribute('name').indexOf(']'))
			if (index != startIndex)
			{
				if (document.getElementById("setvalues").checked == true)
				{
					document.getElementById("address[" + index + "]").value = document.getElementById("address[" + startIndex + "]").value;
					document.getElementById("title[" + index + "]").value = document.getElementById("title[" + startIndex + "]").value + " " + count++;
					document.getElementById("tags[" + index + "]").value = document.getElementById("tags[" + startIndex + "]").value;
					document.getElementById("blurb[" + index + "]").value = document.getElementById("blurb[" + startIndex + "]").value;
					document.getElementById("privacy[" + index + "]").value = document.getElementById("privacy[" + startIndex + "]").value;
				}
				else
				{

					document.getElementById("address[" + index + "]").value = "";
					document.getElementById("title[" + index + "]").value = "";
					document.getElementById("tags[" + index + "]").value = "";
					document.getElementById("blurb[" + index + "]").value = "";
				}
		
			}
		}
	}
	
}

