if(typeof(ics)=='undefined')	ics={};

ics.events={}
ics.objects={}
ics.ajaxRequests={};
ics.datatables={}
ics.genericFunctions={}
ics.submitProcessors={}
ics.optionLists={}
ics.map={x:(37.4419),y:( -122.1419),zoom:13,points:[]}
ics.images=[];
ics.locals={};
ics.locals.dateSeparator='-';
ics.locals.defaultDateFormat='ymd';

ics.genericFunctions.deleteItem=function(){
	if(confirm('Are you sure you would like to delete this item?')){
		location.href='index.php?com='+arguments[0]+'&'+arguments[0]+'_task=process_delete&id='+arguments[1];
	}
}

ics.getE=function(){
	return document.getElementById(arguments[0]);
}

ics.insertAfter=function(parent, newElement, referenceElement){
	parent.insertBefore(newElement, referenceElement.nextSibling);
} 
	
ics.getXmlRequestor=function(){
	if (window.XMLHttpRequest)
		return new XMLHttpRequest();
	else if (window.ActiveXObject)
		return new ActiveXObject("Microsoft.XMLHTTP");
}

ics.evalSubmitResponse=function(responseObject){
	eval(responseObject.responseText);
}

ics.popup=function(popupTitle,popupBody){
	alert(popupTitle+'\n________________________________\n\n'+popupBody);
}

ics.noticePopup=function(popupBody){
	alert('Notice:\n________________________________\n\n'+popupBody);	
}

ics.evalIframeSubmit=function(){
	if(arguments[0].contentDocument){
		arguments[1]=arguments[0].contentDocument.body.innerHTML;
		if(arguments[1]!='')
			eval(arguments[1]);
	}
}

ics.submitForm=function(formToSubmit){
	if(!ics.validateForm(arguments[0],arguments[1]))
		return false;
	url=formToSubmit.action;
	requestData='';
	for(a=0;a<formToSubmit.elements.length;a++){
		//alert('examinig form element: '+formToSubmit.elements[a].type);
		if(formToSubmit.elements[a].type=='file' && formToSubmit.elements[a].value!=''){
			formToSubmit.target="ics_submit_frame";
			formToSubmit.submit();
			formToSubmit.elements[a].value='';
			
			return false;	
		}
		if(formToSubmit.elements[a].type=='checkbox' || formToSubmit.elements[a].type=='radio'){
			if(formToSubmit.elements[a].checked){
				requestData+='&'+formToSubmit.elements[a].name+'='+formToSubmit.elements[a].value;
			}
		}else{
			requestData+='&'+formToSubmit.elements[a].name+'='+formToSubmit.elements[a].value;
		}
	}
	ics.ajaxRequests[formToSubmit.name]=ics.getXmlRequestor();
	if(typeof(ics.submitProcessors[formToSubmit.name])=='function'){
		ics.ajaxRequests[formToSubmit.name].onreadystatechange=function(){
			if(ics.ajaxRequests[formToSubmit.name].readyState==4)
				ics.submitProcessors[formToSubmit.name](ics.ajaxRequests[formToSubmit.name]);
		}
	}else{
		ics.ajaxRequests[formToSubmit.name].onreadystatechange=function(){
			if(ics.ajaxRequests[formToSubmit.name].readyState==4)
				ics.evalSubmitResponse(ics.ajaxRequests[formToSubmit.name]);
		};
	}
	
	ics.ajaxRequests[formToSubmit.name].open('POST',url,true);
	ics.ajaxRequests[formToSubmit.name].setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	ics.ajaxRequests[formToSubmit.name].send(requestData);
	return false;
}

ics.toggleSingleItemInList=function(){
	state=ics.toggleDisplay(arguments[0]);
	for(a=0;a<arguments[1].length;a++){
		if(arguments[1][a]!=arguments[0]){
			ics.toggleDisplay(arguments[1][a],false);
		}
	}
}

ics.toggleDisplay=function(){
	obj=ics.getE(arguments[0]).style;
	if(arguments.length > 1)
		obj.display=(arguments[1])?'':'none';
	else
		obj.display=(obj.display=='none')?'':'none';
	return (obj.display!='none');
}

ics.toggleExclusiveList=function(elemToToggle,fullList){
	for(a=0;a<fullList.length;a++){
		if(fullList[a]!=elemToToggle){
			ics.getE(fullList[a]).style.display='none';
		}else{
			ics.getE(fullList[a]).style.display='';
		}
	}
}

ics.toggleSrc=function(){
	arguments[0]=ics.getE(arguments[0]);
	arguments[0].src=(new String(arguments[0].src).indexOf(arguments[1]) > 0)?arguments[2]:arguments[1];
}

ics.setSelector=function(selector,newValue){
	for(a=0;a<selector.options.length;a++){
		if(selector.options[a].value==newValue){
			selector.selectedIndex=a;
			a=selector.options.length;
		}
	}
}

ics.setRadio=function(radioButton,newValue){
	for(a=0;a<radioButton.length;a++){
		//alert(radioButton[a].value+'/'+newValue);
		radioButton[a].checked = (radioButton[a].value == newValue);
	}
}

ics.adjustiFrame=function(pickerDiv, iFrameDiv)
{
	var is_opera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1);
	if (is_opera)
		return;
	try {
		if (!ics.getE(iFrameDivID)) {
			var newNode = document.createElement("iFrame");
			newNode.setAttribute("id", iFrameDivID);
			newNode.setAttribute("src", "javascript:false;");
			newNode.setAttribute("scrolling", "no");
			newNode.setAttribute ("frameborder", "0");
			document.body.appendChild(newNode);
		}
		
		if (!pickerDiv)
			pickerDiv = ics.getE(datePickerDivID);
		if (!iFrameDiv)
			iFrameDiv = ics.getE(iFrameDivID);
		
		try {
			iFrameDiv.style.position = "absolute";
			iFrameDiv.style.width = pickerDiv.offsetWidth;
			iFrameDiv.style.height = pickerDiv.offsetHeight ;
			iFrameDiv.style.top = pickerDiv.style.top;
			iFrameDiv.style.left = pickerDiv.style.left;
			iFrameDiv.style.zIndex = pickerDiv.style.zIndex - 1;
			iFrameDiv.style.visibility = pickerDiv.style.visibility ;
			iFrameDiv.style.display = pickerDiv.style.display;
		} catch(e) {
		}
 
	} catch (ee) {
	}
}

ics.copyFieldList=function(formName,fromFields,toFields){
	formName=document.forms[formName];
	for(a=0;a<formName.elements.length;a++){
		fromFieldName=new String(formName.elements[a].name);
		if(fromFieldName.indexOf(fromFields+'_')==0){
			toFieldName=fromFieldName.replace(fromFields,toFields);
			switch(formName.elements[a].type){
				case 'text':
					formName[toFieldName].value=formName.elements[a].value;
					break;
				case 'select-one':
					formName[toFieldName].selectedIndex=formName[fromFieldName].selectedIndex;
					break;
				case 'checkbox':
					formName[toFieldName].checked=formName[fromFieldName].checked;
					break;
			}
		}
	}
}

ics.setDynamicOptionList=function(listName,newIndex,outputList,toggleId,startIndex){
	obj=ics.getE(toggleId);
	if(obj)	obj=obj.style;
	for(a=(outputList.options.length - 1);a>startIndex;a--){
		outputList.options[a]=null;
	}
	if(ics.optionLists[listName][newIndex]){
		for(a=0;a<ics.optionLists[listName][newIndex].length;a++){
			outputList.options[(a+startIndex)]=new Option(
				ics.optionLists[listName][newIndex][a].text,
				ics.optionLists[listName][newIndex][a].value
			);
		}
		if(obj)	obj.display='';
	}else{
		if(obj)	obj.display='none';
	}
}

ics.loadElements=function(){
	mapElem=ics.getE('icsmap');
	if(mapElem){
		ics.loadMap(mapElem);
	}
}

ics.loadMap=function(mapElem){
	if (GBrowserIsCompatible()) {
		var mapElem = new GMap2(mapElem);
		mapElem.setCenter(new GLatLng(ics.map.x,ics.map.y),ics.map.zoom);
		for(a=0;a<ics.map.points.length;a++){
			mapElem.addOverlay(new GMarker(new GLatLng(ics.map.points[a].x,ics.map.points[a].y)));
		}
	}
}

ics.preloadImages=function(){
	for (i=0;i<arguments.length;i++){
		ics.images[i]=new Image()
		ics.images[i].src=arguments[i];
	}
}

ics.setArea=function(){
	if(arguments[0]=='initialization_js'){
		eval(arguments[1]);
	}else{
		areaObj=ics.getE(arguments[0]);
		if(areaObj)	areaObj.innerHTML=arguments[1];
	}
}

ics.doRequest=function(url,parameters){
	timeHandler=new Date().valueOf();
	ics.ajaxRequests[timeHandler]=ics.getXmlRequestor();
	url+='&timeHandler='+timeHandler;
	ics.ajaxRequests[timeHandler]=ics.getXmlRequestor();
	ics.ajaxRequests[timeHandler].onreadystatechange=Function('','if(ics.ajaxRequests['+timeHandler+'].readyState==4)	ics.evalSubmitResponse(ics.ajaxRequests['+timeHandler+']);');
	ics.ajaxRequests[timeHandler].open('POST',url,true);
	ics.ajaxRequests[timeHandler].setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	ics.ajaxRequests[timeHandler].send(parameters);
}

ics.removeRow=function(rowId){
	rowObj=ics.getE(rowId);
	rowObj.parentNode.removeChild(rowObj);
}

ics.getWindowWidth=function(){		
	if (navigator.appName=="Netscape") {
		return window.innerWidth;
	}
	if (navigator.appName.indexOf("Microsoft")!=-1) {
		return document.body.offsetWidth;
	}
}

ics.getWindowHeight=function(){		
	if (navigator.appName=="Netscape") {
		return window.innerHeight;
	}
	if (navigator.appName.indexOf("Microsoft")!=-1) {
		return document.body.offsetHeight;
	}
}


ics.setEvent=function(objId,eventType,scriptToSet){
	obj=ics.getE(objId);
	if(obj)
		obj[eventType]=Function('',scriptToSet);
}

ics.setColorOption=function(itemObj,newVal,buttonObj){
	doContinue=true;
	counter=0;
	itemObj.value=newVal;
	while(doContinue){
		testObj=ics.getE(itemObj.name+'_option_'+counter);
		if(testObj){
			testObj.setAttribute(ics.getClassAttrib(),"color_option_button");
			counter++;
		}
		else{
			doContinue=false;
		}
	}
	buttonObj.setAttribute(ics.getClassAttrib(),"color_option_button color_option_on");
}

ics.getClassAttrib=function(){
	return (ics.browser=='ie7')?'className':'class';
}

ics.requestComponent=function(componentName,componentTask,parameters,doRequest){
	//startTime=new Date().valueOf();
	if(arguments.length < 4 || doRequest){
		timeHandler=new Date().valueOf();
		url='index.php?com='+componentName+'&'+componentName+'_task='+componentTask+'&timeHandler='+timeHandler;
		ics.ajaxRequests[timeHandler]=ics.getXmlRequestor();
		ics.ajaxRequests[timeHandler].onreadystatechange=Function('','ics.loadComponent(\''+timeHandler+'\')');
		if(typeof(parameters)=='string'){
			ics.ajaxRequests[timeHandler].open('POST',url,true);
			ics.ajaxRequests[timeHandler].setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			ics.ajaxRequests[timeHandler].send(parameters);
		}else{
			paramList=[];
			for(a=0;a<parameters.elements.length;a++){
				if(parameters.elements[a].type=='checkbox' || parameters.elements[a].type=='radio'){
					if(parameters.elements[a].checked){
						paramList.push(parameters.elements[a].name+'='+parameters.elements[a].value);
					}
				}else{
					paramList.push(parameters.elements[a].name+'='+parameters.elements[a].value);
				}

				//paramList.push(encodeURI(parameters.elements[a].name)+'='+encodeURI(parameters.elements[a].value));
				//alert(parameters.elements[a].value);
			}
			ics.ajaxRequests[timeHandler].open('POST',url,true);
			ics.ajaxRequests[timeHandler].setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			ics.ajaxRequests[timeHandler].send(paramList.join('&'));
			//endTime=new Date().valueOf();
			//alert('request sent: '+startTime+' - '+endTime+' = '+ (endTime - startTime));
			return false;
		}
	}
}

ics.loadComponent=function(reqHandle){
	if(ics.ajaxRequests[reqHandle].readyState==4){
		eval('ics.newContent='+ics.ajaxRequests[reqHandle].responseText);
		for(key in ics.newContent){
			//alert('looking to swap in '+key+'\n\n'+ics.newContent[key]);
			area=ics.getE(key);
			if(area && ics.newContent[key] && ics.newContent[key]!=''){
				area.innerHTML='<div style="width: 100%;height: 100%;">'+ics.newContent[key]+'</div>';
			}
		}
		ics.getE('body').style.width='100%';
		//alert(ics.newContent.initialization_js);
		if(ics.newContent.initialization_js && ics.newContent.initialization_js!=''){
			eval(ics.newContent.initialization_js);
		}
		
	}
}

ics.cancelBubble=function(evt){
	var e=(evt)?evt:window.event;
	if (window.event) {
		e.cancelBubble=true;
	} else {
		e.stopPropagation();
	}
}

ics.toggleInnerHTML=function(){
	arguments[0].innerHTML=(arguments[0].innerHTML==arguments[1])?arguments[2]:arguments[1];
}

ics.toggleCssClass=function(){
	arguments[0].setAttribute(ics.getClassAttrib(),((arguments[0].getAttribute(ics.getClassAttrib()) == arguments[1])?arguments[2]:arguments[1]));
}

ics.setSelectorOptions=function(){
	if(arguments[2][arguments[1]]){
		for(a=(arguments[0].options.length - 1);a>0;a--){
			if(arguments[0].options[a].value != ''){
				arguments[0].remove(a);
			}
		}
		for(a=0;a<arguments[2][arguments[1]].length;a++){
			arguments[0].options.add(new Option(arguments[2][arguments[1]][a].text,arguments[2][arguments[1]][a].value));
		}
		return true;
	}
	else{
		return false;
	}
}