// JavaScript Document
// cancel
do_cancel=function(options){
	var form=(options.form_name)?document.forms[options.form_name]:document.frm;	
	form.action=options.url;	
	form.submit();		
}	
tab_create=function(id,options){
	var defaluts={fxSlide: true, fxSpeed: 500, cookie: { expires: 30 }, cache:false, selectedClass: "selected"}	;
	var config=jQuery.extend(defaluts,options);
	jQuery("#"+id+" > ul").tabs(config);	
}

set_language=function(lang){
	// set cookie
	jQuery.cookie('_LANGUAGE' , lang, { expires: 30 });
	// reload ui
	window.location.href=window.location.href;
}

block_ui=function(block){
	if(block){
		if(jQuery.browser.msie){
			jQuery("body").css({filter: 'alpha(opacity = 50);'});
		}else{
			jQuery("body").css({opacity:'0.50'});
		}
	}else{
		if(jQuery.browser.msie){
			jQuery("body").css({filter: ''});
		}else{
			jQuery("body").css({opacity:'100'});
		}
	}
}

jQuery.easing.elasout = function(x, t, b, c, d) {
	var s=1.70158;var p=0;var a=c;
	if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
	if (a < Math.abs(c)) { a=c; var s=p/4; }
	else var s = p/(2*Math.PI) * Math.asin (c/a);
	return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
};

ajax_loader=function(){				  
    jQuery().ajaxStart(function() {		
		jQuery("body").css({cursor:"wait"});
		selects_overlap(true);
		jQuery("#loading-mask").show();
		//set_loader_position();
	}).ajaxStop(function() {	
		jQuery("body").css({cursor:"default"});
		selects_overlap(false);
		jQuery("#loading-mask").hide();
	}).ajaxError(function(a, b, e) {
		throw e;
	}); 	
}

selects_overlap=function(hide){
	if (jQuery.browser.msie) {				
		if(parseInt(jQuery.browser.version)<=6){
			if(hide){
				jQuery("form select.hidden").css({ visibility: "hidden" });
			}else{
				jQuery("form select.hidden").css({ visibility: "visible" });
			}
		}
	}
}  

set_loader_position=function(){
	var element = jQuery('#loading_mask_loader');	

    if (element && jQuery.browser.msie) {		
        var middle = parseInt(document.body.clientHeight/2)+document.body.scrollTop;
		//jQuery(element).css({position:'absolute','top':middle});
		try{
			//element.style.position = 'absolute';
			//element.style.top = middle;
			//jQuery(element).css({position:'absolute',top:100,left:50});
		}catch(ex){}
    }	
}

onenter_submit=function(method,selector){
	var selector = selector || ":input";	
	jQuery(selector).each(function (i) { 							   
		jQuery(this).keyup(function(event){
			if(event.keyCode == 13){
				method();
			}
		}); 			
    });
}

// other 
check_all=function(object,func){
  form=object.form; 
  for(var i=0;i<form.elements.length;i++){
   if(form.elements[i].type=="checkbox" && form.elements[i].name==object.value){    
    form.elements[i].checked=object.checked;
	if(func){
	  func(form.elements[i]);
	}
   }
  }
}

select_all=function(object,value){
  form=object.form; 
  if(object.value=="Select All"){	  
      var checked=true;
	  object.value="Unselect All";
  }else{
	  var checked=false;
	  object.value="Select All";
  }
  
  for(var i=0;i<form.elements.length;i++){   
   if(form.elements[i].type=="checkbox" && form.elements[i].name==value){    
    form.elements[i].checked=checked;	
   }
  }
}

count_checked=function(name,form){
  var cntchk=0;
  for(var i=0;i<form.elements.length;i++){
    if(form.elements[i].name==name && form.elements[i].checked==true){    
   	  cntchk++;
    }
  }
  
  return cntchk;
}

do_task=function(options){
	// delegate 
	var delegate=true;
	
	// form object
	var form=(options.form_name)?document.forms[options.form_name]:document.frm;
	// create form elements if not defined
	create_form_elements(form);
	// set key	
	set_keys(options.id,form);
	// alert on no select if so set
	if(options.select!=undefined && options.select=='required'){
		if(count_checked("_keys[]",form)==0){
		  alert("Please select some %s1% to %s2%".replace("%s1%",options.name_of).replace("%s2%",options.task.replace("_"," ")));	
		  try{form.ctasks.selectedIndex=0;}catch(x){}
		  return;
		}
	}
	
	// conmfirm delete
	if(is_delete_operation(options)){
		var msg_confirm = "Waring : Are you sure to delete selected %s% ?";
		if(!confirm(msg_confirm.replace("%s%",options.name_of))){
        	return;         	
	  	}
	}
	
	// set task
	form.mode.value=options.task;	
	// set hash
	form_hash(form,options.id);
	// set _tasks
	form._tasks.value=serilize(options);
	
	// invoke validator
	if(options.validator){		    
	  	if(typeof(options.validator)=="function"){			
			if(!options.validator(form)) return;
		}
	}	
	
	// set form action if set
	//if(options.action && !options.form_action){
		//options.form_action=options.action+"/"+options.task;
	//}	
	form.action=(options.form_action)?options.form_action:form.action;
	
	// send form		
	form.submit();	
	
}

select_check=function(id,form){
	form= form || document.frm;
	set_keys(id,form);
}

set_keys=function(id,form){
	if(parseInt(id)==0) return;
	
	for(i=0;i<form.elements.length;i++){
	   if(form.elements[i].type=="checkbox" && form.elements[i].name=="_keys[]"){
		  if(form.elements[i].value==id){
			form.elements[i].checked = !form.elements[i].checked;
			break;
		  }   
	   }
	}
	
	if(document.getElementById("_key")){
		document.getElementById("_key").value = id || 0;
	}
}

group_task=function(el,s,n){
	// check
	if(el.value=="")return;
	
	do_task({task:el.value ,select: s, name_of: n});
}

is_delete_operation=function(options){
  if(options.task && options.task.toString().indexOf("delete")!=-1){
	return true;
  }else if(options.subtask && options.subtask.toString().indexOf("delete")!=-1){
	return true;  
  }	
  
  return false;
}

serilize=function(options){
	o_add=[];
	for(o in options){
		if(typeof(options[o])=="function"){	
		  continue;
		}
		o_add.push(o+"="+encodeURI(options[o]))
	}
	return o_add.join("&");
}

form_hash=function(form,id){
	if(form.elements["_form_hash"]==undefined){
		 create_element(form,"_form_hash");	   
	}
	var id= id || 0;	
	form._form_hash.value=new Date().getTime() + id + Math.round(Math.random()*100);		
}

create_form_elements=function(form){
	var form_elements=["mode","_key","_form_hash","_tasks"];
	
	jQuery.each(form_elements,function (i) {     
		if(form.elements[this]==undefined){
		  	create_element(form,this);	   
		}			
    });	
}

create_element=function(form,name){
     var n       = document.createElement("input");
		 n.type  = "hidden";
		 n.name  = name;
		 n.id    = name;
		 n.value = "";
		 form.appendChild(n);
		 delete(n);
}

do_sort=function(field,form){
	// form
	form = (form==undefined) ? document.frmgrid : form;	
	// create if not created
	if(form.orderbycol == undefined) {
		create_element(form, "orderbycol");
		create_element(form, "orderbydir");
	}	
	// reset
	form.orderbydir.value = (form.orderbycol.value!=field) ? "ASC" : ((form.orderbydir.value=="ASC")?"DESC":"ASC");
	// field
	form.orderbycol.value = field;
	// submit
	form.submit();
}

// editor data
editor_data=function(name, type){
	switch(type){
		case 'tinymce':
		break;
		default:
			var editor=FCKeditorAPI.GetInstance(name);
			html=editor.GetHTML();	
		break;
	}
  	
	return html;
}
// setup editor
editor_validator=function(name, type){
	jQuery.validator.addMethod("editor_required", function(value) {
		var data=editor_data(name, type);
		
		if(data.toString().is_empty()){			
			return false;	  	
		}
		return true;
	});
}

clear_combo_options=function(el_select, keep_all){
	var keep_all = keep_all || false;	
	if(keep_all)
		var all_text=el_select.options[0].text;
	
	// remove all
	for(i=0;i<el_select.options.length;i++){	  
	     el_select.options[i]=null;		
	}		
	// set to 0
	el_select.options.length=0;
	// add all
	if(keep_all)
	   	el_select.options[0]=new Option(all_text, 0, false,false);
		
}

add_combo_option=function(el_select, el_selected_text, el_selected_value, el_default_selected, el_selected){
	// default
	el_default_selected = el_default_selected || false;
	// selected
	el_selected = el_default_selected || false;
	// add
	el_select.options[el_select.options.length]=new Option(el_selected_text, el_selected_value, el_default_selected, el_selected);
}

add_combo_options=function(el_select,range,el_selected_value){
    el_selected_value=(el_selected_value==-1)?1:el_selected_value;
    for(var i=range[0];i<=range[1];i++){		
	    selected=(el_selected_value==i)?true:false;
		el_select.options[el_select.options.length]=new Option(i,i,false,selected);
	}	
}

popup_small=function(url,height,width,options){  
  var options =options || {};
  
  if(screen.availHeight && screen.availWidth){
    var ah=screen.availHeight-30;
    var aw=screen.availWidth-10;
  }else{
	var ah=708; 
	var aw=1014;	
  }  
  if(height==undefined){	
    height=600;
  }
  if(width==undefined){	
    width=700;
  }  
		
  var xc = (aw - 500) / 2;
  var yc = (ah - 500) / 2;
  
  // configs
  var resizable  =(options.resizable!=undefined && options.resizable=="N")?0:1;
  var scrollbars =options.scrollbars || 1;
  var winProp='toolbar=0, menubar=0, resizable='+resizable+', scrollbars='+scrollbars+', dependent=0, status=0,';      
      winProp+=' width='+width+', height='+height+',left=' + xc + ', top=' + yc;  	
    
  var new_window = window.open(url, 'new_window', winProp);
  if(new_window && new_window.focus){
    new_window.focus();
  }
}

popup_fullscreen=function(url){   
  if(screen.availHeight && screen.availWidth){
    var ah=screen.availHeight-30;
    var aw=screen.availWidth-10;
  }else{
	var ah=708; 
	var aw=1014;	
  }  
  	
  height=screen.availHeight;  
  width=screen.availWidth;
  	
  var xc = (aw - 500) / 2;
  var yc = (ah - 500) / 2;
  
  var winProp='toolbar=0, menubar=0, location=0, resizable=0, scrollbars=1, dependent=0, status=0,';      
      winProp+=' width='+width+', height='+height+',left=' + xc + ', top=' + yc;
  	
    
  var lock_window = window.open(url, 'lock_window', winProp);
  if(lock_window && lock_window.focus){
    lock_window.focus();
  }
}

no_validation_status=function(label,fields){
	if(jQuery.inArray(label.get(0).htmlFor,fields)!=-1){
		label.remove();
		label.html("&nbsp;").removeClass("error").removeClass("checked");
		return true;
	}
	return false;
}

apply_css=function(href){
	var fileref=document.createElement("link");
        fileref.setAttribute("rel", "stylesheet");
        fileref.setAttribute("type", "text/css");
        fileref.setAttribute("href", href);
 
     if (typeof fileref!="undefined")
        document.getElementsByTagName("head")[0].appendChild(fileref);	
}

apply_menu=function(options){
	var arrowimages={down:['downarrowclass', options.downarrowimage, 25], 
                     right:['rightarrowclass', options.rightarrowimage ]};
	//jQuery.extend(arrowimages,options);					 
	jquerycssmenu.buildmenu("jmenu", arrowimages)				 
}

apply_input_styles=function(){
	if(jQuery.browser.msie){
		 jQuery("input[type='text']").addClass('textbox_ie');
		 jQuery("input[type='password']").addClass('textbox_ie');
		 jQuery("textarea").addClass('textarea_ie');				 	
	 }else{
		 jQuery("input[type='text']").addClass('textbox');
		 jQuery("input[type='password']").addClass('textbox');
		 jQuery("textarea").addClass('textarea');				 
	 }	
}

// print
print_document=function(url){
    if(url==null){
		window.print();
	}else{
		popup_small(url);
	}
}

// hash to select
hash_to_query=function(qVar,hash){
	var hash=hash || window.location.hash.replace("#","");	
	var qVarVal=""; 
	if(hash){
		hash_vars=hash.toString().split("/");	
		for(var i=0;i<hash_vars.length;i++){
			if(hash_vars[i].toString().is_empty()==false){
				if(hash_vars[i]==qVar){
					qVarVal=hash_vars[i+1];
				}
			}
		}
	}
	return qVarVal;
}	
// set selected
set_selected=function(name,value){	
	jQuery("select[name='"+name+"'] option").each(function () {								
		 if(value==jQuery(this).val()){
			jQuery(this).attr("selected",true);
		 }
	});
}
// highlight select
select_highlight=function(name,value){
	if(value.length==2){
		value=value.substr(1,1);
	}
	set_selected(name,value);
}
// capture print block
print_capture=function(){
	return jQuery('#print-block').html();	
}

cache_images=function(images){
	jQuery.each(images, function(i) {
	  images[i] = new Image();
	  images[i].src = this;
	});	
}

display_message=function(id, data, scr){
	var scr = (scr != 'undefined') ? scr : true;	
	// remove 										   														
	jQuery('#'+id+' #message').remove();																																										
	// show message
	jQuery('#'+id).prepend('<div id="message"></div>');	
	// show
	jQuery('#'+id+' #message').addClass(data.status).addClass('response-msg ui-corner-all').html(data.message);	
	// focus
	if(scr){
		jQuery.scrollTo('#'+id, 400);	
	}
}

// message
open_dialog_box = function(title, message, options){
	// create div
	jQuery('#dialog_msg').remove();	
	jQuery('body').prepend('<div id="dialog_msg"></div>');	
	var dialogOpts = {
			title: title,
			bgiframe: true,
			modal: true,
			autoOpen: false,					
			resizable: false,
			height: 200,
			width: 350,
			position: [400,100],
			open: function() {
					// display correct dialog content
					if(message)
						jQuery('#dialog_msg').html(message);
			},
			buttons: {
				Ok: function() {
					jQuery(this).dialog('close');
				}
			}

		};
		// mege
		if(options != 'undefined'){
			var dialogOpts = jQuery.extend({}, dialogOpts, options);
		}
		// open
		jQuery('#dialog_msg').dialog(dialogOpts); 
		jQuery('#dialog_msg').dialog("open");	
}

// open_small_cart	
view_smallcart = function(s){
	var s = (s=='undefined') ? true : s;
	
	if(s){
		jQuery('#small_cart').slideDown();
	}else{				
		jQuery('#small_cart').slideUp();	
	}	
}	
// subscribe
do_subscribe=function(){
	// add subscribe validation
	jQuery("#frmsubscribe").validate({
		submitHandler: function(form) {					    					
			jQuery("#frmsubscribe").ajaxSubmit({type: "POST",												 
			  dataType: 'json',											 
			  beforeSubmit: function(){	
				jQuery('#newsletter_form').hide();
				jQuery('#error_email #message').remove();		
				jQuery('#error_email').prepend('<div id="message" class="running"><span>Processing...</span></div>');									  	
			  },												  
			  success: function(data){
					// show	
					jQuery('#newsletter_form').show();												  		
					// remove 										   														
					jQuery('#error_email #message').remove();															
					// otherwise error										
					jQuery("#newsletter_form :input").not(":input[type='hidden']").not(":input[type='submit']").val('');															
					// message			
					open_dialog_box('Newsletter',data.message);	
			  }}); // end   		
			return false;												
		},
		rules: {
			email: {required:true,email:true}
		},					
		messages: {		
			email: {required:"Please enter email", email:"Please enter valid email"}
		},
		onfocusout: false,
		onkeyup: false,
		errorClass:'invalid',
		errorPlacement: function(error, element) {							
			// message			
			open_dialog_box('Email Error!','Please enter a valid email');
		}
	});
	// trigger	
	jQuery("#frmsubscribe").submit();
}		
// hide
jQuery(document).ready(function(){ 
	jQuery('#small_cart').hide();										
});
