function browser(){
	this.dom = (document.getElementById) ? true : false;
	this.ns4 = (document.layers) ? true : false;
	this.ie = (document.all) ? true : false;
	this.ns6 = this.dom && !this.ie
	this.ie4 = this.ie && !this.dom;
	this.opera = (navigator.userAgent.indexOf("Opera") != -1);
	this.mac = (navigator.appVersion.indexOf("Mac") != -1);
	this.macie4 = this.ie4 || this.mac;
	this.dhtml = (this.dom || this.ns4 || this.ie || this.ie4 || this.opera || !this.mac) ? true : false;
	this.dhtml = (this.mac)?false:true;
	return this;
}

var bw = new browser();

function toggleTable(el,st) {
	var myelement = document.getElementById(el);

	if(st == 1){
		if(bw.ie){
			myelement.style.display = "inline"
		}else{
			myelement.style.display = "table-cell"
		}
	}else{
		myelement.style.display = "none"
	}
}






//register screen
function how_hear_text(id){

	theform = document.register;

	if(id == "Other"){
		toggleTable('type_1',1);
		toggleTable('type_2',0);
		theform.elements["data[constituants][0][how_hear]"].value = "";
		theform.elements["data[constituants][0][referal]"].value = "";
	}else if(id == "From an ADC member"){
		toggleTable('type_1',0);
		toggleTable('type_2',1);

		theform.elements["data[constituants][0][how_hear]"].value = id;
		theform.elements["data[constituants][0][referal]"].value = "";
	}else{
		toggleTable('type_1',0);
		toggleTable('type_2',0);
		theform.elements["data[constituants][0][how_hear]"].value = id;
		theform.elements["data[constituants][0][referal]"].value = "";
	}
}

function mandatory_zip(obj_id,value) {

	if(value == 840){
   		document.getElementById(obj_id).innerHTML = "<b class='mandatory'>*</b>";
	}else{
		document.getElementById(obj_id).innerHTML = "";
	}
}

function set_state(theform,str,the_element){
	theform.elements[the_element].value = str;
}

function country_states(id, theform, the_element, prefix,clear){

	if(id == 840){
		toggleTable(prefix+'_el_1',1);
		toggleTable(prefix+'_el_2',0);
		toggleTable(prefix+'_el_3',0);

		toggleTable(prefix+'_el_not_man',0);
		toggleTable(prefix+'_el_man',1);

		theform.elements[prefix+"_state_province"][0].selected = true;

	}else if(id == 124){
		toggleTable(prefix+'_el_1',0);
		toggleTable(prefix+'_el_2',1);
		toggleTable(prefix+'_el_3',0);

		toggleTable(prefix+'_el_not_man',0);
		toggleTable(prefix+'_el_man',1);

		theform.elements[prefix+"_canada_province"][0].selected = true;
	}else{
		toggleTable(prefix+'_el_1',0);
		toggleTable(prefix+'_el_2',0);
		toggleTable(prefix+'_el_3',1);

		toggleTable(prefix+'_el_not_man',1);
		toggleTable(prefix+'_el_man',0);

		if(clear)
		theform.elements[the_element].value = "";
	}
}

function populate(thisform){

	if(thisform.elements["asabove"].checked){

		thisform.elements["data[constituants][0][del_addr_01]"].value = thisform.elements["data[constituants][0][phy_addr_01]"].value;
		thisform.elements["data[constituants][0][del_addr_02]"].value = thisform.elements["data[constituants][0][phy_addr_02]"].value;
		thisform.elements["data[constituants][0][del_city]"].value = thisform.elements["data[constituants][0][phy_city]"].value;
		thisform.elements["data[constituants][0][del_state]"].value = thisform.elements["data[constituants][0][phy_state]"].value;
		thisform.elements["data[constituants][0][del_code]"].value = thisform.elements["data[constituants][0][phy_code]"].value;
		thisform.elements["data[constituants][0][del_country_id]"].value = thisform.elements["data[constituants][0][phy_country_id]"].value;

		id = thisform.elements["data[constituants][0][phy_country_id]"].value;
		country_states(id,thisform,'data[constituants][0][del_state]','del',0);

		if(id == 840){
	   		document.getElementById('del_zip').innerHTML = "<b class='mandatory'>*</b>";
		}else{
			document.getElementById('del_zip').innerHTML = "";
		}


		thisform.elements["del_state_province"].value = thisform.elements["data[constituants][0][phy_state]"].value;
		thisform.elements["del_canada_province"].value = thisform.elements["data[constituants][0][phy_state]"].value;

	}else{
		thisform.elements["data[constituants][0][del_addr_01]"].value = "";
		thisform.elements["data[constituants][0][del_addr_02]"].value = "";
		thisform.elements["data[constituants][0][del_city]"].value = "";
		thisform.elements["data[constituants][0][del_state]"].value = "";
		thisform.elements["data[constituants][0][del_code]"].value = "";
		thisform.elements["data[constituants][0][del_country_id]"].value = "-1";

		country_states(1,thisform,'data[constituants][0][del_state]','del',1);

		document.getElementById('del_zip').innerHTML = "";
	}
}

//shop
function empty_basket(){
	if(confirm("Do you really want to empty your Cart?")){
		window.location = "/store/?action=empty";
	}
}

function remove_from_basket(item,item_id){
	if(confirm("Do you really want to remove "+item+" from your Cart?")){
		window.location = "/store/?b="+item_id+"&action=remove";
	}
}

function delete_basket_Form(basketform, theaction){
	if(confirm("Do you really want to remove selected items?")){
		basketform.action = theaction;
		basketform.submit();
	}
}


//porfolios
function editFormEntry(theform, theaction, allShow, actType){
	edit_count = 0;
//	theform = eval('document.members');

	if(theform.elements[allShow+"_id[]"].checked == true){
		entry_id = theform.elements[allShow+"_id[]"].value;
		edit_count = 1;
	}

	for(x = 0;x < theform.elements[allShow+"_id[]"].length; x++){
		if(theform.elements[allShow+"_id[]"][x].checked == true){
			entry_id = theform.elements[allShow+"_id[]"][x].value;
			edit_count ++;
			if(edit_count > 1){
				break;
			}
		};
	}

	if(edit_count == 0){
		alert("Please select an entry you want to "+actType+".");
	}else if(edit_count > 1){
		alert("Please only select a single entry you want to "+actType+".");
	}else{
		window.location = theaction +"?id=" + entry_id;
	}
}


//misc
function disable_button(id){
	document.getElementById(id).disabled = true;
}

function checkGeneric(allItem, entry_form){
	allItem = entry_form.elements[allItem];

	if(allItem.checked == false){
		setFlag = false;
	}else{
		setFlag = true;
	}

	entry_form.elements[allItem.name + "_id[]"].checked = setFlag;

	for(x = 0;x < entry_form.elements[allItem.name + "_id[]"].length; x++){
		entry_form.elements[allItem.name + "_id[]"][x].checked = setFlag;
	}

}

function checkSetGeneric(allItem, entry_form){

	if(entry_form.elements[allItem].checked == false){
		entry_form.elements[allItem].checked = true;
	}else{
		entry_form.elements[allItem].checked = false;
	}

	checkGeneric(allItem, entry_form);
}

function checkSearchAll(allItem, theForm, seriesName){

	entry_form = eval("document." + theForm);

	allItem = entry_form.elements[allItem];

	if(allItem.checked == false){
		setFlag = false;
	}else{
		setFlag = true;
	}

	entry_form.elements[seriesName + "[]"].checked = setFlag;

	for(x = 0;x < entry_form.elements[seriesName + "[]"].length; x++){
		entry_form.elements[seriesName + "[]"][x].checked = setFlag;
	}
}

function statusSetter(str) {
   window.defaultStatus = str;
   window.status = str;
}

function pop(url, name, w, h, rs, sb, mn, st, oth) {
var resize = ((rs) ? "resizable="+rs+"," : "");
var scroll = ((sb) ? "scrollbars="+sb+"," : "");
var menu = ((mn) ? "toolbar="+mn+",location="+mn+",menubar="+mn+"," : "");
var sts = ((st) ? "status="+st+"," : "");

     var popupWin = window.open(url, name, resize + scroll + menu + sts + "width=" + w + ",height=" + h + " " + oth);
     if (document.layers) {
          popupWin.focus();
     }
}

function submitEnter(myfield,e){
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;

	if (keycode == 13)
	   {
	   myfield.form.submit();
	   return false;
	   }
	else
	   return true;
}

function submitForm(theform, theaction){

	theform.action = theaction;
	theform.submit();
}

function deleteForm(theform, theaction, allShow){
	var item_selected = 0;

	if(theform.elements[allShow + "_id[]"].checked == true){
		item_selected = 1;
	}

	for(x = 0;x < theform.elements[allShow + "_id[]"].length; x++){
		if(theform.elements[allShow + "_id[]"][x].checked == true){
			item_selected = 1;
			break;
		};
	}

	if(item_selected == 1){
		if(confirm("Do you really want to delete selected entries?")){
			theform.action = theaction;
			theform.submit();
		}
	}else{
		alert("Please select entries you want to delete.");
	}
}

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
		num = "0";

	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();

	if(cents<10)
		cents = "0" + cents;

	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));

	return (((sign)?'':'-') + '$' + num + '.' + cents);
}


function submitTargetForm(theform, theaction, thetarget){

	try{
			document.getElementById("loading_text").innerHTML = "<br />Loading... please wait.<br /><br />";
	} catch (e) {}

	execute = 1;

	if(thetarget != ""){
		prev_target = theform.target;
		theform.target = thetarget;
	}

	prev_action = theform.action;
	theform.action = theaction;
	theform.submit();

	theform.target = prev_target;
	theform.action = prev_action;


}

function textCounter(field,cntfield,maxlimit) {
	if (field.value.length > maxlimit){ // if too long...trim it!
		field.value = field.value.substring(0, maxlimit);
	}else{
		document.getElementById(cntfield).innerHTML = maxlimit - field.value.length;
	}
}


/* AJAX */

var http_request = false;
var myspan;
var activeRequest = 0;

function makePageRequest(url, parameters, myspan_name) {
   http_request = false;
   myspan = myspan_name;

   if (window.XMLHttpRequest) { // Mozilla, Safari,...
      http_request = new XMLHttpRequest();
      if (http_request.overrideMimeType) {
         http_request.overrideMimeType('text/xml');
      }
   } else if (window.ActiveXObject) { // IE
      try {
         http_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
         try {
            http_request = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e) {}
      }
   }
   if (!http_request) {
      alert('Cannot create XMLHTTP instance');
      return false;
   }else{
  	 activeRequest++;
   }

//   http_request.onreadystatechange = alertPageContents;
//   http_request.open('POST', url, true);
//   http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//   http_request.setRequestHeader("Content-length", parameters.length);
//   http_request.setRequestHeader("Connection", "close");
//   http_request.send(parameters);

   http_request.onreadystatechange = alertPageContents;
   http_request.open('GET', url+"?"+parameters, true);
   http_request.send(null);
}

function alertPageContents() {

   if (http_request.readyState == 4) {
      if (http_request.status == 200) {
       //alert(http_request.responseText);
         result = http_request.responseText;
         processAjax(result,myspan);
         activeRequest--;
//         alert(activeRequest);
         AjaxQueue.processNext();
      } else {
         alert('There was a problem with the request.');
         activeRequest--;
      }
   }
}

function processAjax(result,myspan_name){
	document.getElementById(myspan_name).innerHTML = result;

	if(myspan_name != "loading_text"){
		try{
			document.getElementById("loading_text").innerHTML = "&nbsp;";
		} catch (e) {}
	}
}

var AjaxQueue = {
	batchSize: 1,
	urlQueue: [],
	elementsQueue: [],
	optionsQueue: [],
	setBatchSize: function(bSize){
		this.batchSize = bSize;
	},
	push: function(url, options, elementID){
		this.urlQueue.push(url);
		this.optionsQueue.push(options);
		if(elementID!=null){
			this.elementsQueue.push(elementID);
			try{
				processAjax("<br />Loading...<br /><br />","loading_text");
			} catch (e) {}
		} else {
			this.elementsQueue.push("NOTSPECIFIED");
		}

		this.processNext();
	},
	processNext: function() {

		if(activeRequest < this.batchSize)
		{

			if(this.urlQueue != ""){
				makePageRequest(this.urlQueue.shift(), this.optionsQueue.shift(), this.elementsQueue.shift())
			}else{
//				alert("sasasasasa");
			}
		}else{
//			alert(activeRequest);
		}
	}
};


//ELEMENTS
function deleteAjaxElements(theform, allShow,url,parameters,span){
	var item_selected = 0;

	if(theform.elements[allShow + "_id[]"].checked == true){
		item_selected = 1;
	}

	for(x = 0;x < theform.elements[allShow + "_id[]"].length; x++){
		if(theform.elements[allShow + "_id[]"][x].checked == true){
			item_selected = 1;
			break;
		};
	}

	if(item_selected == 1){
		if(confirm("Do you really want to delete selected elements?")){
			details_submit(theform,url,parameters,span);
//			theform.submit();
		}
	}else{
		alert("Please select credits you want to elements.");
	}
}

function details_submit(frm,url,parameters,myspan_name) {

      var getstr = parameters;

      if(getstr != ""){
      	getstr += "&";
      }

      for (i=0; i<frm.elements.length; i++) {

      	if (frm.elements[i].tagName == "INPUT") {

	         if ((frm.elements[i].type == "text") || (frm.elements[i].type == "hidden")) {
	               getstr += frm.elements[i].name + "=" + frm.elements[i].value + "&";
	         }

	         if (frm.elements[i].type == "checkbox") {
	            if (frm.elements[i].checked) {
	               getstr += frm.elements[i].name + "=" + frm.elements[i].value + "&";
	            } else {
//	               getstr += frm.elements[i].name + "=&";
//	               newgetstr += frm.elements[i].name + "=&";
	            }
	         }
	         if (frm.elements[i].type == "radio") {
	            if (frm.elements[i].checked) {
	               getstr += frm.elements[i].name + "=" + frm.elements[i].value + "&";
	            }
	         }
      	}
      	if (frm.elements[i].tagName == "TEXTAREA") {
            getstr += frm.elements[i].name + "=" + frm.elements[i].value + "&";
         }
      	if (frm.elements[i].tagName == "SELECT") {
            var sel = frm.elements[i];
            getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
         }
      }

//      alert(url+" - "+getstr)

      AjaxQueue.push(url,getstr,myspan_name);
}
