﻿$(document).ready(function () {
	$('div.mnb').hover(function () { }, function () { mnb.clr(); });
	$('#mnb1').hover(function () { mnb.set(1); });
	$('#mnb2').hover(function () { mnb.set(2); });
	$('#mnb4').hover(function () { mnb.set(4); });
	$('#mnb5').hover(function () { mnb.set(5); });
	$('#mnb6').hover(function () { mnb.set(6); });

	$('input[name=uid], input[name=pwd]').signfocus();
	$('.left .itemshop').load('/itemshop/toplist');
});

var gamename = 'shotonline';
var gamenum = 1;


var common = {
	signin: function (rtnurl) {
		var frm = $('form[name=frmSign]');
		var uid = $('input[name=uid]').val();
		var pwd = $('input[name=pwd]').val();

		if (uid == '' || uid == null) {
			alert('Please enter your User ID.');
			$('input[name=uid]').focus();
			return false;
		}

		if (pwd == '' || pwd == null) {
			alert('Please enter your Password.');
			$('input[name=pwd]').focus();
			return false;
		}

		rtnurl = (typeof (rtnurl) == 'undefined' || rtnurl == '') ? location.href : rtnurl;
		frm.target = '_top';
		frm.method = 'post';
		frm.action = 'http://www.gamescampus.com/account/login_exec.asp?rtnurl=' + rtnurl;
		return true;
	},

	signout: function (rtnurl) {
		rtnurl = (typeof (rtnurl) == 'undefined' || rtnurl == '') ? location.href : rtnurl;
		document.location.href = 'http://www.gamescampus.com/account/logout_exec.asp?rtnurl=' + rtnurl;
		return false;
	},

	signup: function () {
		document.location.href = 'http://www.gamescampus.com/account/agreement.asp?gamescampus=' + gamename;
		return false;
	},

	findidpw: function () {
		document.location.href = 'http://www.gamescampus.com/account/lost.asp?gamescampus=' + gamename;
		return false;
	},

	mycredit: function () {
		document.location.href = 'http://www.gamescampus.com/myaccount/myhistory.asp';
		return false;
	},

	myaccount: function () {
		document.location.href = 'http://www.gamescampus.com/myaccount/myprofile.asp';
		return false;
	},

	addcc: function () {
		document.location.href = 'http://www.gamescampus.com/myaccount/payment.asp?site=' + gamenum;
		return false;
	}
};

var mnb = {
	hover: function (num) {
		mnb.clr();
		mnb.set(num);
	},
	set: function (num) {
		$('#mnb' + num + 'sub').show().hover(function () { }, function () { mnb.clr(); });
	},
	clr: function () {
		$('#mnb1sub,#mnb2sub,#mnb3sub,#mnb4sub,#mnb5sub,#mnb6sub').hide();
	}
};

/***** Functions *****/
$.fn.signfocus = function () {
	return this.each(function () {
		$this = $(this);
		var defaultbg = $this.css('background-image');
		if ($this.val() != '') clearbg($this);

		$this.focusin(function () { clearbg(this); }).focusout(function () { setbg(this); });

		function clearbg(el) {
			$(el).css('background-image', 'none');
		}

		function setbg(el) {
			if ($(el).val() == '') {
				$(el).css('background-image', defaultbg);
			}
		}
	});
};


$.fn.inputfocus = function () {
	return this.each(function () {
		$this = $(this);
		var defaultvalue = $this.val();
		if ($this.attr('readonly') == 'readonly') return false;

		$this.focusin(function () { clearvalue(this); }).focusout(function () { setvalue(this); });

		function clearvalue(el) {
			if ($(el).val() == defaultvalue) {
				$(el).val('');
			}
		}

		function setvalue(el) {
			if ($(el).val() == '') {
				$(el).val(defaultvalue);
			}
		}
	});
};



/*
$.fn.upload = function (opts) {
	opts = opts || {};
	//default
	opts = $.extend({
	}, opts);

	return this.each(function () {
		var parent = $(this).parent();
		var btn = $('<p/>').addClass('btn_upload').text('Choose File');
		var msg = $('<p/>').addClass('file').text('No file chosen!');
		var wrapper = $('<div/>').css({ height: 0, width: 0, 'overflow': 'hidden' });
		var fileInput = $(this).wrap(wrapper);

		$(btn).appendTo(parent);
		$(msg).appendTo(parent);

		fileInput.change(function () { $this = $(this); alert($this); $(msg).text($this.val()); })
		$('.btn_upload, .file').click(function () { fileInput.click(); }).show();
		$(this).change(function () { alert($(this).val()); });

	});

}
*/


/*

$.fn.upload = function (options) {
	var settings = {
		params: {},
		action: '',
		onStart: function () { console.log('starting upload'); console.log(this); },
		onComplete: function (response) { console.log('got response: '); console.log(response); console.log(this); },
		onCancel: function () { console.log('cancelling: '); console.log(this); }
	};

	if (options) {
		$.extend(settings, options);
	}

	var handleResponse = function (loadedFrame, element) {
		var response, responseStr = loadedFrame.contentWindow.document.body.innerHTML;
		try {
			response = JSON.parse(responseStr);
		} catch (e) {
			response = responseStr;
		}

		// Tear-down the wrapper form
		element.siblings().remove();
		element.unwrap();

		// Pass back to the user
		settings.onComplete.apply(element, [response, settings.params]);
	};


	var wrapElement = function (element) {
		alert(element);
		// Create an iframe to submit through, using a semi-unique ID
		var frame_id = 'fileUploader-iframe-' + Math.round(new Date().getTime() / 1000)
		$('body').after('<iframe width="0" height="0" style="display:none;" name="' + frame_id + '" id="' + frame_id + '"/>');
		$('#' + frame_id).load(function () {
			handleResponse(this, element);
		});

		// Wrap it in a form
		element.wrap(function () {
			return '<form action="' + settings.action + '" method="POST" enctype="multipart/form-data" target="' + frame_id + '" />'
		})
		// Insert <input type='hidden'>'s for each param
		.after(function () {
			var key, html = '';
			for (key in settings.params) {
				html += '<input type="hidden" name="' + key + '" value="' + settings.params[key] + '" />';
			}
			return html;
		});
	}



	// 'this' is a jQuery collection of one or more (hopefully) 
	//  file elements, but doesn't check for this yet
	return this.each(function () {
		var $element = $(this);
		var parent = $element.parent();
		var btn = $('<p/>').addClass('btn_upload').text('Choose File');
		var msg = $('<p/>').addClass('file').text('No file chosen!');
		var wrapper = $('<div/>');//.css({ height: 0, width: 0, 'overflow': 'hidden' });
		var fileInput = $(this).wrap(wrapper);

		$(btn).appendTo(parent);
		$(msg).appendTo(parent);

		$('.btn_upload, .file').click(function () { $element.click(); }).show();

		// Skip elements that are already setup. May replace this 
		//  with uninit() later, to allow updating that settings
		if ($element.data('fileUploader-setup') === true) return;

		$element.change(function () {
			alert('change');
			if ($element.val() == '') return settings.doCancel.apply($element, [settings.params]);

			//$(msg).text($element.val());

			// Creates the form, extra inputs and iframe used to 
			//  submit / upload the file
			wrapElement($element);

			// Call user-supplied (or default) onStart(), setting
			//  it's this context to the file DOM element
			var ret = settings.onStart.apply($element);

			// let onStart have the option to cancel the upload
			if (ret !== false) {
				$element.parent('form').submit();
			}
		});

		// Mark this element as setup
		$element.data('fileUploader-setup', true);
	});
}
*/

function affiliate_clear(ele) {
	$(ele).val('');
	$(ele).focus();
	$('#affiliate_submit').removeAttr('disabled');
}

function affiliate_validate() {
	var emailStr = jQuery.trim($('#affiliate_address').val());
	var emailCont = jQuery.trim($('#affiliate_content').val());

	$('#affiliate_submit').attr('disabled', 'disabled');

	if (emailStr.length == 0 || emailStr == '') {
		alert('Please enter your E-Mail Address.');
		affiliate_clear('#affiliate_address');
		return false;
	}
	if (emailCont.length == 0 || emailCont == '') {
		alert('The content field cannot be left blank.');
		affiliate_clear('#affiliate_content');
		return false;
	}

	var checkTLD = 1;
	var knownDomsPat = /^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat = /^(.+)@(.+)$/;
	var specialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars = "\[^\\s" + specialChars + "\]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChars + '+';
	var word = "(" + atom + "|" + quotedUser + ")";
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat = new RegExp("^" + atom + "(\\." + atom + ")*$");
	var matchArray = emailStr.match(emailPat);
	if (matchArray == null) {
		alert("Invalid Email Address (check @ and .'s)");
		affiliate_clear('#affiliate_address');
		return false;
	}
	var user = matchArray[1];
	var domain = matchArray[2];
	for (i = 0; i < user.length; i++) {
		if (user.charCodeAt(i) > 127) {
			alert("The Email Address username contains invalid characters.");
			affiliate_clear('#affiliate_address');
			return false;
		}
	}
	for (i = 0; i < domain.length; i++) {
		if (domain.charCodeAt(i) > 127) {
			alert("The Email Address domain contains invalid characters.");
			affiliate_clear('#affiliate_address');
			return false;
		}
	}
	if (user.match(userPat) == null) {
		alert("Invalid Email Address username");
		affiliate_clear('#affiliate_address');
		return false;
	}
	var IPArray = domain.match(ipDomainPat);
	if (IPArray != null) {
		for (var i = 1; i <= 4; i++) {
			if (IPArray[i] > 255) {
				alert("The Destination IP address is invalid.");
				affiliate_clear('#affiliate_address');
				return false;
			}
		}
		return true;
	}
	var atomPat = new RegExp("^" + atom + "$");
	var domArr = domain.split(".");
	var len = domArr.length;
	for (i = 0; i < len; i++) {
		if (domArr[i].search(atomPat) == -1) {
			alert("Invalid Email Address domain name");
			affiliate_clear('#affiliate_address');
			return false;
		}
	}
	if (checkTLD && domArr[domArr.length - 1].length != 2 &&
	domArr[domArr.length - 1].search(knownDomsPat) == -1) {
		alert("The Email Address must end in a well-known domain or two letter " + "country.");
		affiliate_clear('#affiliate_address');
		return false;
	}
	if (len < 2) {
		alert("The Email Address is missing a hostname.");
		affiliate_clear('#affiliate_address');
		return false;
	}

	return true;
}
