/**************************************
 * Project:   remy, a perfect pour
 * File:      ajax_functions
 * Author:    CADOA ARTS & SCIENCE
 *
 * @copyright 2008 cadoa arts & science
 * @author CADOA derek@cadoa.com
 * @package ajax module
 * @version 1.0
 ***************************************/



/******************************************************************************************
* This function toggles a form , if formelem does not equal false put focus into an element
* @params id,element,formelem
* @return none
******************************************************************************************/
function get_form(id,element,formname,formelem){
	document.getElementById(""+element+"").style.top = 200+"px";
	document.getElementById(""+element+"").style.left = 300+"px";
	new  Effect.toggle(element, 'appear',{
		afterFinish: x = function handle(){
			if(formelem){
				the_form = eval('document.'+formname+'.'+formelem);
				the_form.focus();
			}
		}
	});
	
}


function get_tracking_form(id,element,t_num){
	
	document.getElementById(""+element+"").style.top = 200+"px";
	document.getElementById(""+element+"").style.left = 300+"px";
	new  Effect.toggle(element, 'appear');
	document.orders.tracking.value = t_num;
	document.orders.the_id.value = id;
	
	
}

function form_handler(params){
	new Ajax.Request(params['php_handler'], {
		method:'post',
		parameters:params['post_vars'],
		onSuccess: x = function handleMe(t){
			document.getElementById(''+params['div']+'').innerHTML = '';
	 		document.getElementById(''+params['div']+'').innerHTML = t.responseText;
		 }
	});
}

function edit_form(id,element,formname){
	new Ajax.Request("ajax/get_user.php", {
		method:'post',
		parameters:"id="+id,
		onSuccess: x = function handleMe(t){
			the_vars = t.responseText.split('|');
			document.edit_user.first_name.value = the_vars[0];
			document.edit_user.last_name.value = the_vars[1];
			document.edit_user.email.value = the_vars[2];
			document.edit_user.phone.value = the_vars[3];
			document.edit_user.region.selectedIndex = the_vars[4];
			document.edit_user.id.value = the_vars[5];
			document.getElementById(""+element+"").style.top = 200+"px";
			document.getElementById(""+element+"").style.left = 300+"px";
			new  Effect.toggle(element, 'appear');
		 }
	});
}

function edit_form_profile(id,element,formname){
	new Ajax.Request("ajax/get_user.php", {
		method:'post',
		parameters:"id="+id,
		onSuccess: x = function handleMe(t){
			the_vars = t.responseText.split('|');
			document.edit_user.first_name.value = the_vars[0];
			document.edit_user.last_name.value = the_vars[1];
			document.edit_user.email.value = the_vars[2];
			document.edit_user.phone.value = the_vars[3];
			document.edit_user.id.value = the_vars[5];
			document.edit_user.shipping_address.value = the_vars[6];
			//document.edit_user.billing_address.value = the_vars[7];
			document.getElementById(""+element+"").style.top = 200+"px";
			document.getElementById(""+element+"").style.left = 300+"px";
			new  Effect.toggle(element, 'appear');
		 }
	});
}

/*************************************************************************
* This function hadles the formatting and submission of data from a form
*
* @params , formName, ,handlerfunc, params, check (either false or a hash)
* @return none
****************************************************************************/
function submit_form(formName,handlerFunc,params){
	the_form = eval('document.'+formName);
	// LOOP THROUGH FORM ELEMENTS
	//alert(the_form.elements.length);
	form_data = '';
	for(i=0;i<the_form.elements.length;i++){
		form_data += the_form.elements[i].name+'='+escape(the_form.elements[i].value)+'&';
		//alert(escape(the_form.elements[i].name)); 
	}
	//ADD FORM 
	params = form_data+''+params;
	func = eval(handlerFunc);
	func(section,sub_section,params,div);
}
/*
function submit_form(formName,handlerFunc){
	valid = true;
	//PREPARE FORM DATA
	//alert(formName);
	the_form = eval('document.'+formName);
	// LOOP THROUGH FORM ELEMENTS
	//alert(the_form.elements.length);
	form_data = '';
	for(i=0;i<the_form.elements.length;i++){
		form_data += the_form.elements[i].name+'='+escape(the_form.elements[i].value)+'&';
		//alert(escape(the_form.elements[i].name)); 
	}
	//ADD FORM 
	params = form_data+''+params;
	//alert(params);
	//CHECK FORM
  	if(check){
		valid= form_check(params,check);
	}
	if(valid == true){
		//IF WE NEED To DISPLAY AN IMAGE LOADING GRAPHIC
		if(the_form.is_image){
			//alert(the_form.is_image.value);
			the_form.submit();
			toggleVisibility(the_form.is_image.value);
		} 
		//IF THIS IS REGISTRATION
		if(the_form.terms){
			alert('Please check your email to complete registration.');
			//CLEAR FORM
			for(i=0;i<the_form.elements.length;i++){
				the_form.elements[i].value='';
			}
			
		} 
		//GET FUNCTION FUNC
		func = eval(handlerFunc);
		//alert(handlerFunc);
		//CALL AJAX FUNCTION
		//alert(div);
		func(section,sub_section,params,div);
		//RETURN
		return true;
	} else{
		return false;
	}
}

*/
/****************************************************************************************
* This function handles doing a form check, displays custom message passed via HASH
* the checkFunction refers to which fucntion needs to be called in form_validate.php, 
* form_validate recieves all data in POST method
*
* @params , params, hash:: message:'', checkFunction:''
* @return boolean
*****************************************************************************************/

function form_check(params,check){
	//alert('formCheck');
	var checked = false;
	params = params+'&checkFunction='+check['checkFunction'];
	new Ajax.Request('ajax/form_check.php', {
	 	method:'post',
	 	asynchronous:false,
	 	parameters:params,
	 	onSuccess: x = function handleMe(t){
	 		//alert(t.responseText );
	 		if(t.responseText == 'true'){
	 			checked = true;
	 			
	 		} else{
	 			//alert(t.responseText );
	 			document.getElementById('message').innerHTML = t.responseText;
	 			document.getElementById('errorMessage').style.visibility = 'visible';
	 		}
	 	}
	 });
	//alert('here');
	return checked;
}

function SetCookie(cookieName,cookieValue,nDays) {
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue)
                 + ";expires="+expire.toGMTString();
}


function show_element(div,element,formelem,elemval,elementone){
	the_val = eval("document."+formelem+"."+elemval);
	document.getElementById(''+div+'').innerHTML = the_val.value;
	the_prev = elems[elementone];
	document.getElementById(''+elementone+'_preview').innerHTML = the_prev+' '+the_val.value+'<br/>';
	document.getElementById(''+elementone+'_preview').style.visibility = 'visible';
	if(the_val.value!=''){
		if(document.getElementById(''+element+'').style.display == 'none'){
			Effect.toggle(element, 'appear');
			Effect.toggle(elementone, 'appear');
		}
	} else{
		alert('Please Complete.');
	}
}

function trash_element(){
	
}

function submit_order(){
	
}

function preview_order(){
	new  Effect.toggle('order_preview', 'appear');
}

function addToFavorites(url) { 
	if (window.external) { 
		window.external.AddFavorite(url,"Perfect Pour") 
	} else {
		alert("Sorry! Your browser doesn't support this function."); 
	} 
} 

function upload_file(formname){
	//media element should alwasy be named media
	the_form = eval("document."+formname);
	new Ajax.Request('ajax/upload_file.php', {
	 	method:'post',
	 	asynchronous:false,
	 	parameters:params,
	 	onSuccess: x = function handleMe(t){
	 		//alert(t.responseText );
	 		if(t.responseText == 'true'){
	 			checked = true;
	 			
	 		} else{
	 			//alert(t.responseText );
	 			document.getElementById('message').innerHTML = t.responseText;
	 			document.getElementById('errorMessage').style.visibility = 'visible';
	 		}
	 	}
	 });
	
}
	function change(elem,imgelem){
		//alert(1);
		document.getElementById(elem).style.backgroundColor='#91A207';
		document.getElementById(imgelem).style.visibility='visible';
		//document.getElementById(elem).style.backgroundColor='#91A207';
		
	}
	
	function change_back(elem,imgelem){
		document.getElementById(elem).style.backgroundColor='#453D40';
		document.getElementById(imgelem).style.visibility='hidden';
	}
	
	function image_swap(image){
		//alert(1);
		new Effect.toggle("thepic","appear",{
			afterFinish:x=function(){
				document.getElementById("thepic").innerHTML = '<img src="'+image+'">';
				new Effect.toggle("thepic","appear");
			}
		});	
	}
	
	function swap_class(elem,cl){
		document.getElementById(""+elem+"").className = cl;
	}