// link panel
function ajaxSearch() {
	$("#subSearchDiv form#mainSearch select, #subSearchDiv form#mainSearch input").change(function() {
		startLoading();
		$(this).parents('form').submit();
	});
}
function ajaxPaging() {
	$(".paginationDiv a, .jsPaginate a").unbind('click').click(function() {
		url = $(this).attr('href');
		startLoading();
		$.get(url, function(data) {
			$('div#jsPaginationContent').html($(data).find("div#jsPaginationContent"));
			doIt();
		});
		return false;
	});
}
function startLoading() {
		$(".inPanel2").html('<div style="width:100%; text-align:center; height:100px; font-size:16px;">Loading ...</div>');
}

function doIt() {
	ajaxPaging();
}

// pagination
function returnSubmit(data) {
	$("#jsPaginationContent").html($(data).find("#jsPaginationContent").html());
	doIt();
}
function ajaxSearch() {
	$("#subSearchDiv form#mainSearch select, #subSearchDiv form#mainSearch input").change(function() {
		startLoading();
		$(this).parents('form').submit();
	});
}
function ajaxPaging() {
	$(".paginationDiv a, .jsPaginate a").unbind('click').click(function() {
		url = $(this).attr('href');
		startLoading();
		$.get(url, function(data) {
			$('div#jsPaginationContent').html($(data).find("div#jsPaginationContent"));
			doIt();
		});
		return false;
	});
}
function startLoading() {
		$(".inPanel2").html('<div style="width:100%; text-align:center; height:100px; font-size:16px;">Loading ...</div>');
}

function doIt() {
	ajaxPaging();
}

// ajaxpage
function ajaxPage() {
	$("div#submenu2 a").unbind('click').click(function() {
		url = $(this).attr('href');
		url = url.split("#", 2);
		if (url[1] != hash) {
			hash = url[1];
			url = generateUrl(handsetCode, hash);
			processLinkAjax(url, hash);
		}
	});
}

function processLinkAjax (url, fragment) {
	$.get(url, function(data) {
		switch(fragment) {
			case "payg":
			case "sim-free":
			default:
				if (fragment == '') {
					fragment = 'contract';
				}
				// contract
				$('div#dealsContent').html($(data).find("div#dealsContent"));
				$('div#submenu2 a').removeClass('active');
				$('div#submenu2 a#subMenu' + fragment).addClass('active');
		}
	});
}


function generateUrl(handsetCode, fragment) {
	fragment = fragment.replace("#", "");
	page = '';
	switch(fragment) {
		case "contract":
			page = "contract";
			break;
		case "payg":
			page = "pay-as-you-go";
			break;
		case "sim-free":
			page = "sim-free";
			break;
		case "spec":
			page = "spec";
			break;
		case "reviews":
			page = "reviews";
			break;
		case "videos":
			page = "videos";
			break;
		default:
			page = "contract";
	}
	url = baseurl + "/mobile-phones/" + page + "/" + handsetCode + "/";
	return url;
}
function returnSubmitReview(data) {
	$("#ReviewMessage").html(data);
}

// others

var manusi = new Array();

function empty(val) {
	if(val!=null || typeof(val)=="undefined") {
		return false;
	}
	return true;
}
function var_dump(obj) {
   if(typeof obj == "object") {
      return "Type: "+typeof(obj)+((obj.constructor) ? "\nConstructor: "+obj.constructor : "")+"\nValue: " + obj;
   } else {
      return "Type: "+typeof(obj)+"\nValue: "+obj;
   }
}
function getQsVal() {
	c_qstype = qstype.val();
	if(empty(c_qstype)) {
		c_qstype = '';
	}
	c_qsmanu = qsmanu.val();
	if(empty(c_qsmanu) || c_qsmanu == 'Manufacturer') {
		c_qsmanu = '';
	}
	c_qsmodel = qsmodel.val();
	if(empty(c_qsmodel) || c_qsmodel == 'Model') {
		c_qsmodel = '';
	}
	c_qsnetwork = qsnetwork.val();
	if(empty(c_qsnetwork) || c_qsmodel == 'Network') {
		c_qsnetwork = '';
	}
}
function insertOption(value, text, target) {
	option = '<option value="' + value + '">' + text + '</option>';
	target.append(option);
}
function clearOption(target) {
	target.find("option").remove();
}
function qsManu() {
	getQsVal();
	ajaxQs('manu');
}
function qsModel() {
	getQsVal();
	ajaxQs('model');
}
function qsNetwork() {
	getQsVal();
	ajaxQs('network');
}
function qsType() {
	getQsVal();
	if(c_qstype == 'simfree') {
		qsnetwork.attr('disabled', 'disabled');
	} else {
		qsnetwork.removeAttr('disabled');
	}
	new_models = 'empty';
	buildModel();
	clearOption(qsmanu);
	buildManu();
}
function buildManu() {
	switch(c_qstype) {
		case 'payg':
			x = 2;
			break;
		case 'paym':
			x = 3;
			break;
		case 'simfree':
			x = 4;
			break;
	}
	insertOption('', 'Manufacturer', qsmanu);
	for(i = 0; i < manus.length; i++) {
		if(manus[i][x] == 1) {
			insertOption(manus[i][0], manus[i][1], qsmanu);
		}
	}
}
function buildModel() {
	if(new_models == 'stay') {
		return true;
	}
	clearOption(qsmodel);
	insertOption('', 'Model', qsmodel);
	if(new_models == 'empty') {
		qsmodel.attr('disabled', 'disabled');
	} else {
		qsmodel.removeAttr('disabled');
		for(i = 0; i < new_models.length; i++) {
			var re = new RegExp(manusi[new_models[i]['manu']][1], 'i');
			name = new_models[i]['name'].replace(re, '');
			insertOption(new_models[i]['id'], name, qsmodel);
		}
	}
}
function buildNetwork() {
	if(new_networks == 'stay') {
		return true;
	}
	clearOption(qsnetwork);
	insertOption('', 'Network', qsnetwork);
	if(new_networks == 'empty') {
		qsnetwork.attr('disabled', 'disabled');
	} else {
		for(i = 0; i < new_networks.length; i++) {
			insertOption(new_networks[i]['id'], new_networks[i]['name'], qsnetwork);
		}
	}
}
function ajaxQs(change) {
	url = qs_url + '/manu:' + c_qsmanu + '/model:' + c_qsmodel + '/network:' + c_qsnetwork + '/change:' + change + '/type:' + c_qstype;
	//alert(url);
	$.get(url,
		function(data) {
			//alert(data);
			if(data == 'false') {
				return;
			}
			data = $.evalJSON(data);
			new_models = data['handsets'];
			new_networks = data['networks'];
			buildModel();
			buildNetwork();
		}
		,'json'
	);
}
function buildManusi() {
	for(i = 0; i < manus.length; i++) {
		manusi[manus[i][0]] = manus[i];
	}
}

function publishFB(handsetName, price, retailer, userName) {
	publishContents = {
		'handsetName': handsetName,
		'price': price,
		'retailer': retailer,
		'userName': userName,
	};
	publishMessage = FBPublishContent.message;
	publishDescription = FBPublishContent.description;
	for(key in publishContents) {
		publishMessage = publishMessage.replace('{' + key + '}', publishContents[key]);
		publishDescription = publishDescription.replace('{' + key + '}', publishContents[key]);
	}
	var publish = {
		method: 'stream.publish',
		message: publishMessage,
		attachment: {
			name: siteName,
			caption: siteName,
			description: (
				publishDescription
			),
			href: siteUrl
		},
		action_links: '',
	};
	FB.Connect.streamPublish(publish.message, publish.attachment, publish.action_links);
}



$("form[name='quickSearch']").ready(
	function () {
		buildManusi();
		qstype = $("#QsType");
		qsmanu = $("#QsManufacturer");
		qsmodel = $("#QsModel");
		qsnetwork = $("#QsNetwork");
		default_network = qsnetwork.html();

		qsType();
		qstype.change(
			function() {
				qsType();
			}
		);
		qsmanu.change(
			function() {
				qsManu();
			}
		);
		qsmodel.change(
			function() {
				qsModel();
			}
		);
	}
);

$(document).ready(function() {
	$("#emailer").overlay({
		onBeforeLoad: function() {
			var wrap = this.getOverlay().find(".contentWrap");
			wrap.load(this.getTrigger().attr("href"));
		}
	});
});
