//===========================================================
// PAGE COMMON SUPPORT LIBRARY - author: chris merry 2007
//===========================================================

function uppercasechars(e){
	var keynum
	if(window.event){		//IE
		keynum = e.keyCode
		keynum = keynum.toUpperCase();
	}else if(e.which){ 		// Netscape/Firefox/Opera
		keynum = e.which
		keynum = keynum.toUpperCase();
	}
	alert(keynum);
}

function page_control(offset){
	var frmObj = document.getElementById('nav_form');
	if(frmObj){
		frmObj.item_offset.value = offset;
		frmObj.submit();
	}
}
				
function update_quote(nextaction){
	var basketbuttonsObj = document.getElementById('basketbuttons');
	if(basketbuttonsObj){
		basketbuttonsObj.style.display = 'none';
		set_and_submit_form('main_form','ac='+nextaction,val_list);
	}
}

function set_and_submit_form(frmname,dataset,val_list){
	var frmObj = document.forms[frmname];
	if(frmObj){
		var data = dataset.split(',');
		for(var idx in data){
			var pair = data[idx];
			var bits = pair.split('=');
			
			var name = bits[0];
			var value = bits[1];
			
			var obj = document.forms[frmname][name];
			if(obj){
				obj.value = value;
			}else{
				alert('Could not set '+name+' in form '+frmname+' to '+value);
			}
		}
		if(val_list){ //IF VAL LIST IS PRESENT CHECK AGAINST FORM FIRST
			submit_form(frmname,val_list);
		}else{
			frmObj.submit();
		}
	}else{
		alert("Cant find form object with name '"+frmname+"'");
	}
}

function copyToField(setval,destfieldname){
	var destObj = document.getElementById(destfieldname);
	if(destObj){
		destObj.value = setval;
	}
}

//===========================================================

function togglePanels(ids){
	var elements = ids.split(',');
	for(var x=0;x<elements.length;x++){
		var obj = document.getElementById(elements[x]);
		if(obj) obj.style.display = (obj.style.display == 'none')?'block':'none';
	}
} 

//===========================================================

function setCheckBox(name,current){
	var checks;
	if(document.forms['main'][name]){
		checks =document.forms['main'][name];
		var i=-1;
		for (var x=0;x<checks.length;x++ ){
			if (checks[x].value == current) i=x;
		}
		if(i == 1){ 
			checks[i].checked=1;
		}
	}else{
		alert("setCheckBox - control not found = "+name);
	}
}	

//===========================================================

function setRadioIndex(name,current){
	var rads;
	if(document.getElementsByName(name)){
		rads=document.getElementsByName(name);
		var i=-1;
		for (var x=0;x<rads.length;x++ ){
			if (rads[x].value == current) i=x;
		}
		if(i != -1){ 
			rads[i].checked=1; 
			rads[i].click();
		}
	}else{
		alert("setRadioIndex - control not found = "+name);
	}

}	

//===========================================================

function setSelectIndex(name,current,frmname){						
	var ops;
	//alert('Set val: '+current);
	//alert('Name: ' + name + "  Current: " + current + "  Formname:" +frmname);
	if(document.forms[frmname][name]){	
		ops = document.forms[frmname][name].options;
		obj = document.forms[frmname][name];
		if(ops){
			var i=-1;
			var multi_set = current.split(',');
			if(multi_set.length > 1) ops[0].selected = false;
			//alert('Amount: '+multi_set.length);
			for (var x=0;x<ops.length;x++ ){
				for (var y=0;y<multi_set.length;y++){
					if(ops[x].value == multi_set[y]){
						ops[x].selected	= true;
						i = x;
					}
				}
			}
			if(i != -1){ 
				if(obj.onchange) obj.onchange();
			}
		}
	}else{
		alert("setSelectIndex - control not found = "+name);
	}
}

function basket_control(type,target_basket_id,return_action){
	var basketFrmObj = document.forms['basket_form'];
	if(basketFrmObj){
		if(type == 'remove'){
			var confirmation = window.confirm('Are you sure you want to remove this item from your basket.');
			if(confirmation){
				basketFrmObj.target_basket_id.value = target_basket_id;
				basketFrmObj.return_action.value = return_action;
				basketFrmObj.ac.value = 'remove_basket_item';
				basketFrmObj.submit();
			}
		}else if(type == 'edit'){
			basketFrmObj.target_basket_id.value = target_basket_id;
			basketFrmObj.ac.value = 'edit_basket_item';
			basketFrmObj.return_action.value = return_action;
			basketFrmObj.submit();
		}
	}else{
		alert("Can't find basket form 'basket_form' ");
	}
}


function load_link(url){
	//alert("Load Link: "+url);
	if(url != 0 && url != '' && location.href != url){
		location.href = url;
	}
}

function popup_control(url,type,title,width,height){
	//alert("URL: "+url+"  Window Type: "+windowtype);
	if(url != 0 && url != '' && location.href != url){
		if(type == 'image'){
			OpenWindow(new Array(0,url,title,width,height,0,1,0,0,0,0,0));
		}
	}
}

function OpenWindow(action) {
	//alert(action[1]);
	var wf = "";
	wf = wf + "top=10,left=10";
	wf = wf + ",width=" + action[3];
	wf = wf + ",height=" + action[4];
	wf = wf + ",resizable=" + (action[5] ? "yes" : "no");
	wf = wf + ",scrollbars=" + (action[6] ? "yes" : "no");
	wf = wf + ",menubar=" + (action[7] ? "yes" : "no");
	wf = wf + ",toolbar=" + (action[8] ? "yes" : "no");
	wf = wf + ",directories=" + (action[9] ? "yes" : "no");
	wf = wf + ",destination=" + (action[10] ? "yes" : "no");
	wf = wf + ",status=" + (action[11] ? "yes" : "no");
	return window.open(action[1],action[2],wf);
}


//===========================================================
// AJAX SUPPORT LIBRARY
//===========================================================

function ajax_request(site_url,params,callback) {
	var http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/html');
		}
	} 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) return false;
	var parameters = make_url_params(params,0);
	http_request.onreadystatechange = function() { ajax_process_response(http_request, site_url, callback); };
	http_request.open('POST', site_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);
}

function ajax_process_response(http_request, site_url, callback) {
	if (http_request.readyState == 4){
		if (http_request.status == 200) eval(callback);
		else return false;
	}
}

function ajax_fill_data(fill_id,returned){
	if (document.getElementById(fill_id)) document.getElementById(fill_id).innerHTML = returned;
}

function make_url_params(params_obj,first){
	var s='';
	for (p in params_obj){
		var sep = (first || first == null)?'?':'&'; first = 0;
		s += sep + p+ '=' + encodeURI(params_obj[p]);
	}
	return s;
}