function ajaxResponse(js){jsonResponse(js); }
function ajaxForm(obj, upd){ formSend(obj,upd); }
if (!CFG) var CFG = new Object();

function ajaxURL(obj){	
	var tmp = obj.toString().split('/');
	var l = tmp.length;
	var call = tmp[l-1];
	var tmp2 = call.split('?');
	var cmd = tmp2[0];
	if (tmp2[1]) {
		var tmp3 = tmp2[1].split('&');
		var vars = "'"+tmp3.join("','")+"'";
	} else {
		var vars = '';
	}
	eval(cmd+'('+vars+');');
}

function hidePopup(){
	tb_remove();
	$('#tb_popup').hide();
}

function showhide(id,bool, block){
	try {
		var el = document.getElementById(id);
		if (block) block = 'block';
		else block = '';
		if (el){
			var style = (bool) ? block :'none';
		}
		el.style.display = style;
	} catch (e){

	}
}

function checkCCType(str){
	if (!str) return;

	try{
		var acct = str.replace(' ', '');
		var acct = acct.replace('-','');

		var acct2 = Number(acct.substr(0,2));
		var acct1 = Number(acct.substr(0,1));
		var acct4 = Number(acct.substr(0,4));
		var active = '';
		var type = '';

		//checks
		if (acct1 == '4') type = 'visa';
		else if(acct2 >= 51 && acct2 <= 55) type = 'mc';
		else if(acct2 >= 34 && acct2 <= 37) type = 'amex';
		else if (acct4 == 6011) type = 'disc';

		if (type){
			active = 'cc_'+type;
			var opc = 0.1;
			$('#cc_type').val(type.toUpperCase());
		} else{
			var opc = 0.8;
			$('#cc_type').val('');
		}
		//set opacity
		$('div.cc_types').each(function(el){
			if (this.id == active){
				el.setOpacity(1.0);
			} else {
				el.setOpacity(opc);
			}
		});
	} catch(e){}
}
function fillShipping(bool, id){
	$('#'+id+'_bb').find(':input').each(function(i){
		var nm = $(this).attr('name');
		var newnm = nm.replace('Mail', 'Ship');
		var val = bool ? $(this).val() : '';
		$('#'+newnm).val(val);
	});
}

function formSend(obj){
	var url = $(obj).attr('action');
	var fid = $(obj).attr('id');
	try{
		$('#'+fid+'_ajax').val(1);
		$('#'+fid+'_response').html('');
		$('#'+fid+'_message').html('');		
	} catch (ex){
		
	}
	
	$('.inputerror').removeClass('inputerror');	
	$('div[id$=_error_msg]').html('');
	$('#submit_btn_'+fid).css('visibility', 'hidden');
	
	CFG.CURRENT_FID = fid;
	
	var vars = $(obj).serialize();
	vars += '&formid='+fid;
	$.post(url, vars, ajaxResponse, 'json');	
}

function formPrep(obj){
	var url = $(obj).attr('action');
	var fid = $(obj).attr('id');
	try{
		$('#'+fid+'_ajax').val(1);
		$('#'+fid+'_response').html('');
		$('#'+fid+'_message').html('');
	} catch (ex){
		
	}
	
	$('.inputerror').removeClass('inputerror');	
	
	var vars = $(obj).serialize();
	vars += '&formid='+fid;
	var ret = {};
	ret.url = url;
	ret.vars = vars;
	return ret;
}

function setFormStep(fid,cs){
	var frm = $("#"+fid);
	var fid = $(frm).attr('id');	
	$(frm).find('li.active').removeClass('active');	
	$('#'+fid+'_tab_'+cs).addClass('active');
	$('#'+fid+'_cur_step').val(cs);	
}

function nextFormStep(obj){
	var frm = $(obj).closest('form');
	var fid = $(frm).attr('id');
	
	var cs = Number($('#'+fid+'_cur_step').val());	
	ret = formPrep(frm);	
	$.post(ret.url, ret.vars, function(obj){ if (obj.success) { swapPanel(fid,cs,'current')} jsonResponse(obj); },'json');	
}

function swapPanel(fid,to,from){
	//$('#'+fid+'_panel_'+to).html($('#'+fid+'_panel_'+from).html());
	if ($('#'+fid+'_panel_'+to).is(':empty')){	
		//alert($('#'+fid+'_panel_'+from).html());
		$('#'+fid+'_panel_'+to).empty().append($('#'+fid+'_panel_'+from+' div.formcontent')).hide();
	} else {
		//alert($('#'+fid+'_panel_'+to).html());
		$('#'+fid+'_panel_'+to).hide();
	}
}

function prevFormStep(obj){
	var frm = $(obj).closest('form');
	var fid = $(frm).attr('id');
	var cs = $('#'+fid+'_cur_step').val();
	
	
	//move current	
	//$('#'+fid+'_panel_'+cs).append($('#'+fid+'_panel_current').html());
	$('#'+fid+'_panel_'+cs).hide();	
	
	var ncs = cs-1;		
	$('#'+fid+'_panel_'+ncs).show();
	$('#'+fid+'_panel_current').hide();
	$('#'+fid+'_cur_step').val(ncs);	
	setFormStep(fid, ncs);
}

function jsonResponse(obj){	
	if (!obj) return;
	if (obj.update) AR_update(obj.update);
	if (obj.css) AR_css(obj.css);
	if (obj.attr) AR_attr(obj.attr);	
	if (obj.append) AR_append(obj.append);
	if (obj.remove) AR_remove(obj.remove);
	if (obj.errorFields) AR_errorFields(obj.errorFields);
	if (obj.errorDetails) AR_errorDetails(obj.errorDetails);
	if (obj.eval) AR_eval(obj.eval);
}

function jsonURL(obj){
	var vars = new Object();
	var url = obj.toString();
	$.post(url, vars, ajaxResponse, 'json');
}

function showModalWin(divid, data){
	//config settings
	h = w = 0;
	var opts = { modal:true }
	if (data.dim.h) h = data.dim.h;
	if (data.dim.w) w = data.dim.w;

	if (h){
		opts.minHeight = h;
	}

	if (w){
		opts.minWidth = w;
		opts.width = w;
	}

	if (data.title) opts.title = data.title;

	if (!$('#'+divid).attr('id')){
		$(document.body).append('<div id="'+divid+'" style="display:none"></div>');
	} else {
		$('#'+divid).css('display', 'block');
		$('#'+divid).css('visibility', 'visible');
		if (opts.title) $('#'+divid).dialog('option', 'title', opts.title);
	}

	$('#'+divid).html(data.html);
	$('#'+divid).dialog(opts);
	$('#'+divid).dialog('open');
	ajaxResponse(data);
}

function jsonModal(url, divid){
	if (!divid) divid = 'ui_modal';
	var h = 650;
	var w = 935;
	if (!$('#'+divid).attr('id')){
		$(document.body).append('<div id="'+divid+'" style="display:none"></div>');
	} else {
		$('#'+divid).css('display', 'block');
		$('#'+divid).css('visibility', 'visible');
	}

	$.post(url, false, function(data){ showModalWin(divid,data); }, 'json');
}


function AR_remove(arr){
	for(i in arr) {
		var itm = arr[i];
		$('#'+itm.id).remove();
	}
}

function AR_css(arr){
	for(i in arr) {
		var itm = arr[i];
		if ($('#'+itm.id)){
			$('#'+itm.id).css(itm.k, itm.v);
		}
	}
}

function AR_attr(arr){	
	for(i in arr) {
		var itm = arr[i];
		$(itm.sel).attr(itm.k, itm.v);
	}
}

function AR_append(arr){
	for(i in arr) {
		var itm = arr[i];
		switch(itm.type){
			case 'append':
				$('#'+itm.parent).append(itm.child);
			break;
			case 'after':
				$('#'+itm.parent).after(itm.child);
			break;
			case 'prepend':
				$('#'+itm.parent).prepend(itm.child);
			break;
		}
	}
}

function AR_divupdate(itm){
	if (!$('#'+itm.id).attr('id')){	
		var tag = (itm.type) ? itm.type : 'div';
		var style = (itm.style) ? ' class="'+itm.style+'"' : '';
		var addtype = (itm.addtype) ? itm.addtype : 'prepend';
		var htm = '<'+tag+style+' id="'+itm.id+'"></'+tag+'>';
		var cells = [{parent:itm.parent,child:htm,type:addtype}];
		AR_append(cells);				
	}
	$('#'+itm.id).html(itm.html);
	if (!itm.noshow) $('#'+itm.id).css('display', 'block');
	if (itm.fade) $('#'+itm.id).fadeOut(4000);
}

function AR_update(arr){
	for(i in arr) {
		var itm = arr[i];		
		AR_divupdate(itm);
	}
}

function AR_errorDetails(arr){	
	$('#submit_btn_'+CFG.CURRENT_FID).css('visibility', 'visible');
	$('div.block_error').remove();
	$('div.inline_error').remove();
	
	for(i in arr.list) {
		var itm = arr.list[i];
		$('#'+itm.id).addClass('inputerror');
		$('#lbl_'+itm.id).addClass('inputerror');

		try{
			if ($('#'+itm.id).get(0).tagName == 'TEXTAREA'){
				AR_divupdate({id:itm.id+'_error_msg',tag:'div',style:'block_error',addtype:'append',html:itm.msg,parent:'input_bb_'+itm.id});
			} else if ($('#'+itm.id).attr('type') == 'checkbox'){
				AR_divupdate({id:itm.id+'_error_msg',tag:'div',style:'block_error',addtype:'append',html:itm.msg,parent:'input_bb_'+itm.id});
			} else if ($('#'+itm.id).attr('type') == 'radio'){
				$('input[name='+itm.id+']').parent().addClass('inputerror');
				AR_divupdate({id:itm.id+'_error_msg',tag:'div',style:'block_error',html:itm.msg,parent:'input_bb_'+itm.id});
			} else {
				AR_divupdate({id:itm.id+'_error_msg',tag:'div',style:'inline_error',html:itm.msg,parent:'input_bb_'+itm.id});
			}
		} catch(e){}
	}
}

function AR_errorFields(arr){	
	for(i in arr.list) {
		var itm = arr.list[i];		
		$('#'+itm).addClass('inputerror');
		$('#lbl_'+itm).addClass('inputerror');
		if ($('#'+itm).attr('type') == 'radio'){			
			$('input[name='+itm+']').parent().addClass('inputerror');
			AR_divupdate({id:itm+'_error_msg',tag:'div',style:'block_error',html:'Please Select an Item',parent:'input_bb_'+itm});
		} else {	
			AR_divupdate({id:itm+'_error_msg',tag:'div',style:'inline_error',html:'Required',parent:'input_bb_'+itm});			
		}
	}
}

function AR_eval(arr){
	for(i in arr) {
		var itm = arr[i];		
		eval(itm+';');
	}
}
jQuery.fn.center = function () {
    this.css("position","absolute");
    this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");
    this.css("left", ( $('#container').width() - this.width() ) / 2+$('#container').scrollLeft() + "px");
    return this;
}

$('[placeholder]').focus(function() {
	  var input = $(this);
	  if (input.val() == input.attr('placeholder')) {
	    input.val('');
	    input.removeClass('placeholder');
	  }
	}).blur(function() {
	  var input = $(this);
	  if (input.val() == '' || input.val() == input.attr('placeholder')) {
	    input.addClass('placeholder');
	    input.val(input.attr('placeholder'));
	  }
	}).blur().parents('form').submit(function() {
	  $(this).find('[placeholder]').each(function() {
	    var input = $(this);
	    if (input.val() == input.attr('placeholder')) {
	      input.val('');
	    }
	})
});
