jQuery(document).ready(function($j) {
	if ($j.browser.msie && $j.browser.version == "6.0") {
		DD_belatedPNG.fix('.png');
	};
	
	// Force add Child Selector Class for IE6/Win
	if ($j.browser.msie && $j.browser.version == "6.0") {
		$j("li:first-child").addClass("firstChild");
		$j("li:last-child").addClass("lastChild");
		$j("tr:first-child").addClass("firstChild");
		$j("tr:last-child").addClass("lastChild");
		$j("th:first-child").addClass("firstChild");
		$j("th:last-child").addClass("lastChild");
		$j("td:first-child").addClass("firstChild");
		$j("td:last-child").addClass("lastChild");
	};
	
	$j('body').ieFixButtons();
	// Current Store Selector
	/*
	$j("#localStore").sSelect();
	*/
	
	// Striped Table
	$j("table.striped tbody tr:not([th]):odd").addClass("odd");
	$j("table.striped tbody tr:not([th]):even").addClass("even");
	
	// Textarea Resizer
	$j("textarea.resizable:not(.processed)").TextAreaResizer();
	
	
	
	/*
	$j("#test").click(function() {
		var time = new Date();
		var dd = new Date(time.getFullYear(), time.getMonth(), 32);
		var dd2 = new Date(time.getFullYear(), time.getMonth() + 1, 1);
		//Set 1 day in milliseconds
		var one_day=1000*60*60*24;
		var monthend = new Date(time.getFullYear(),time.getMonth(),(32 - ((Math.ceil((dd.getTime()-dd2.getTime())/(one_day))) + 1)));
		alert(monthend);
	});
	*/
	
	// jQuery Tools
	
	// App Scroller
	$j("#specialPromo .inner").scrollable({hoverClass: "hover"}).mousewheel();
	$j("#category").scrollable({hoverClass: "hover"}).mousewheel();
	$j("#featured").scrollable({hoverClass: "hover"}).navigator().mousewheel();
	$j("#topfree").scrollable({hoverClass: "hover"}).navigator().mousewheel();
	$j("#toppaid").scrollable({hoverClass: "hover"}).navigator().mousewheel();
	
	// Accordion
	$j("#faqList .accordion").tabs(".answer", {
		tabs: ".question .title a",
		effect: "fade",
		initialIndex: null
	});
	
	if ($j.browser.msie && $j.browser.version == "6.0") {
		$j(".tooltip").bgiframe({src: "BLOCKED SCRIPT'&lt;html&gt;&lt;/html&gt;';"});
	};
	
	$j("#mobileMember .tooltip").tooltip({
		tip: '#sfcTooltip',
		position: "bottom, center",
		offset: [20, 0],
		relative: true,
		effect: 'slide'
		}).dynamic({
		bottom: {
			direction: 'down',
			bounce: true
		}
	});
	
	$j("#mobileMember .tooltipForIE6").tooltip({
		tip: '#sfcTooltip',
		position: "bottom, center",
		offset: [20, 0],
		relative: true,
		effect: 'slide'
		}).dynamic({
		bottom: {
			direction: 'down',
			bounce: true
		}
	});
	
	$j("#signupForm .tooltip").tooltip({
		tip: '#signupForm .tip',
		position: "bottom, right",
		offset: [0,10],
		relative: true,
		effect: 'slide'
	});
	
	$j("#signupForm .tooltipForIE6").tooltip({
		tip: '#signupForm .tip',
		position: "bottom, right",
		offset: [0,10],
		relative: true,
		effect: 'slide'
	});
	
	$j("#supportedPhones ul").tabs('#phoneDetails .pane', {
		tabs: '.tab',
		event: 'click'
	})
	
	/*
	$j("#selectCountry").change(currentStore);
	
	function currentStore() {
		var selected = $j("#countryCode option:selected");
		if (selected.val() != 0) {
			var C_CODE = selected.val();
			$j("#selectCountry").attr("action");
			// $j("#selectCountry").attr("action", selected.val());
			
			$j.cookie('COUNTRY_CODE', C_CODE, {
				expires: '0',
				domain: 'localhost',
				path: '/',
				secure: false
			});
			
			$j("#selectCountry").submit()
			// output = "You Selected " + selected.text();
		}
	}
	*/
	
	$j('#navigation li').hover(
		function() {
			$j(this).addClass('current');
		},
		function() {
			$j(this).removeClass('current');
		}
	);
	
	/*
	$j('.btnwrap').hover(
		function() {
			$j(this).addClass('current');
		},
		function() {
			$j(this).removeClass('current');
		}
	);
	*/
	
	/*
	$j('#screenShots #thumbView li a').featureList({
		output: '#screenShots #largeView li',
		start_item: 0
	});
	
	$j("#screenShots a[href^=#]").live('click', function(){return false;})
	*/
	
	$j('#relatedSites h5').click(function () {
		$j('#relatedSites ul').slideToggle('medium');
		return false;
	});
	
	$j('#contentQnA').elastic();
	
	$j("#appSupported, #customerBought").cornerz({
		radius: 10,
		borderColor: '#D4D4D4'
	});
	
	$j(".modal .inner").cornerz({
		radius: 8,
		background: '#EBEBEB',
		borderColor: '#D4D4D4'
	});
	
	$j("#signinForm #goSignUp").cornerz({
		radius: 5,
		background: '#FFFFFF',
		borderColor: '#EBEBEB'
	});
	
	$j("#signUp #signupForm fieldset").cornerz({
		radius: 8,
		borderColor: '#F5F5F5'
	});
	
	$j("#signUp #signupForm .wrap").cornerz({
		radius: 8,
		borderColor: '#D5D5D5'
	});
	
	$j("#signUp .placeholder").cornerz({
		radius: 8,
		borderColor: '#CECECE'
	});
	
	$j(".board .tl").cornerz({
		radius: 3,
		corners: 'tl',
		background: '#FFFFFF',
		borderColor: '#8AADDD'
	});
	
	$j(".board .tr").cornerz({
		radius: 3,
		corners: 'tr',
		background: '#FFFFFF',
		borderColor: '#8AADDD'
	});
	
	$j(".board .bl").cornerz({
		radius: 3,
		corners: 'bl',
		background: '#FFFFFF',
		borderColor: '#8AADDD'
	});
	
	$j(".board .br").cornerz({
		radius: 3,
		corners: 'br',
		background: '#FFFFFF',
		borderColor: '#8AADDD'
	});
	
	$j(".rcorner1").cornerz({
		radius: 5
	});
	
	$j(".rcorner2").cornerz({
		radius: 10,
		borderColor: '#D4D4D4'
	});
	
	$j(".rcorner3").cornerz({
		radius: 10,
		borderColor: '#FFF'
	});
	
	$j(".rcorner4").cornerz({
		radius: 10,
		background: '#F5F5F5'
	});
	
	$j(".rcorner5").cornerz({
		radius: 8,
		corners: 'tl tr',
		borderColor: '#D4D4D4'
	});
	
	$j(".rcorner6").cornerz({
		radius: 8,
		corners: 'bl br',
		borderColor: '#D4D4D4'
	})
	
	$j(".rcorner7").cornerz({
		radius: 5,
		corners: 'tl tr',
		borderColor: '#FFF',
		background: '#F9F9F9'
	})
	
	$j(".rcorner8").cornerz({
		radius: 5,
		corners: 'bl br',
		borderColor: '#FFF',
		background: '#F7F7F7'
	})
	
	$j("#forgotMyAccount a.tab").cornerz({
		radius: 5,
		corners: 'tl tr',
		borderColor: '#BEBEBE'
	});
	
	$j("#forgotMyAccount a.tab.current").cornerz({
		radius: 5,
		corners: 'tl tr',
		borderColor: '#11193D'
	});
	
	$j(".tag.best").cornerz({
		radius: 4,
		borderColor: '#3A2292'
	});
	
	$j(".tag.bundle").cornerz({
		radius: 4,
		borderColor: '#7636AE'
	});
	
	$j(".tag.discount").cornerz({
		radius: 4,
		borderColor: '#7D2428'
	});
	
	$j(".tag.free").cornerz({
		radius: 4,
		borderColor: '#0193DE'
	});
	
	$j(".tag.new").cornerz({
		radius: 4,
		borderColor: '#CF2A1D'
	});
	
	$j(".tag.os").cornerz({
		radius: 4,
		borderColor: '#2296C7'
	});

	$j(".btn.gray").cornerz({
		radius: 4,
		borderColor: '#B5B5B5'
	});
	
	$j(".btn.blue").cornerz({
		radius: 4,
		borderColor: '#3C87E7'
	});

	$j(".btn.orange").cornerz({
		radius: 4,
		borderColor: '#FE4800'
	});

	$j(".btn.view").cornerz({
		radius: 4,
		borderColor: '#2296C7'
	});

	$j(".btn.view_details").cornerz({
		radius: 4,
		borderColor: '#969696'
	});

	$j(".btn.download").cornerz({
		radius: 4,
		borderColor: '#BECFED'
	});
	
	$j(".btn.signin").cornerz({
		radius: 4,
		borderColor: '#263862'
	});

	$j(".howtoDownload .btn.download").cornerz({
		radius: 4,
		borderColor: '#BECFED',
		background: '#E6ECF3'
	});

	$j("#goSignUp .btn.gray").cornerz({
		radius: 4,
		borderColor: '#BECFED',
		background: '#EBEBEB'
	});
	
	/*
	function currentStore() {
		var selected = $j("#checkCookie #remember checked:cheked");
		if (selected.val() != 0) {
			var C_CODE = checked.val();
			$j.cookie('REAL_COUNTRY_CODE', C_CODE, {
				expires: '0',
				domain: 'localhost',
				path: '/',
				secure: false
			});
			
			$j("#selectCountry").submit()
			// output = "You Selected " + selected.text();
		}
	}
	*/
	
	$j(".appList, .items, #benefits ul, #howtoUse ol, #skipSection, #en_GO #selectUrCountry ul, #supportedPhones ul, .board thead tr, #onDevice #benefits ul").equalHeights();
	
	
	$j("a.anchor").anchorAnimate()
	
	// PopUpWindow
	var profiles = {
		payment: {
			/*
			height: 400,
			width: 450,
			resizable: 0,
			*/
			center: 1
		}
	};
	
	$j(".popupwindow").popupwindow(profiles);
	
	$j("#selectCountry a[rel='currentStore']").fancybox({
		'titleShow': false,
		'showCloseButton': false,
		'showNavArrows': false,
		'transitionIn': 'elastic',
		'transitionOut': 'fade',
		'speedIn': 600,
		'speedOut': 350,
		'scrolling': 'no',
		'padding': 0
	});
	
	
	$j("#paymentInfo").ajaxForm({
		beforeSubmit: function() {
			var queryString = $j('.iframe').attr('action') + '?' + $j('.iframe').formSerialize();
			var _width = 431;	//default for PG
			var _height = 388; //default for PG
			if( $j('#isKorea').val() == 'Y' ){
				//KOREA Only
				_width = 400;
				_height = 244;
			}
				
			$j.fancybox ({
				'width': _width,
				'height': _height,
				'showNavArrows': false,
				'scrolling': 'no',
				'transitionIn': 'fade',
				'transitionOut': 'fade',
				'padding': -2,
				'type': 'iframe',
				'href': queryString,
				'onComplete': function() {
					$j.fancybox.hideActivity();
					
					setTimeout(function() {
						parent.$j.fancybox.close();
					}, 1500000);
				}
			});
			$j.fancybox.showActivity();
			return false;
		}
	});
	
	$j("#QnAList #delete").fancybox({
		'titleShow': false,
		'showNavArrows': false,
		'transitionIn': 'fade',
		'transitionOut': 'fade',
		'speedIn': 600,
		'speedOut': 350,
		'scrolling': 'no',
		'padding': 0,
		'onStart': function(formData, jqForm, options) {
			var checkboxValue = $j("#QnAList input[name='qnaId']").fieldValue();
			if (!checkboxValue[0]) {
				// alert(checkboxValue);
				return false;
			}
			$j("#checkPostDelete input[type='submit']").click(function() {
				$j("#QnAList").submit();
			});
			/*
			$j("#checkPostDelete input[type='submit'].btn").click(function() {
				// $j("#myQnAList #searchForm").attr('action', $j("#myQnAList #deleteDomain").val() + "/mypage/deleteMyQna.as").submit();
			});
			*/
		}
	});
	
	$j(".close").live("click", $j.fancybox.close);
	
	$j(".close.iframe").live("click", parent.$j.fancybox.close);
	
	
	// Check if map exists
	if($j('#atlas')) {
		// Loop through each AREA in the imagemap
		$j('#atlas area').each(function() {
			
			// Assigning an action to the mouseover event
			$j(this).mouseover(function(e) {
				var country_id = $j(this).attr('id').replace('area_', '');
				$j('#'+country_id).show();
			});
			
			// Assigning an action to the mouseout event
			$j(this).mouseout(function(e) {
				var country_id = $j(this).attr('id').replace('area_', '');
				$j('#'+country_id).hide();
			});
			
			// Assigning an action to the click event
			/*
			$j(this).click(function(e) {
				e.preventDefault();
				var country_id = $j(this).attr('id').replace('area_', '');
				alert('You clicked ' + country_id);
			});
			*/
		});
	}
	
	$j("#world #atlas area").fancybox({
		'titleShow': false,
		'showCloseButton': false,
		'showNavArrows': false,
		'transitionIn': 'fade',
		'transitionOut': 'fade',
		'speedIn': 600,
		'speedOut': 350,
		'scrolling': 'no',
		'padding': 0
	});
	
	$j("a[rel]#mobileSignIn").fancybox({
		'titleShow': false,	
		'showNavArrows': false,
		'transitionIn': 'fade',
		'transitionOut': 'fade',
		'speedIn': 600,
		'speedOut': 350,
		'scrolling': 'no',
		'padding': 0
	});
	
	$j("#appInfo a[rel='#popupHowto']").fancybox({
		'titleShow': false,
		'showNavArrows': false,
		'transitionIn': 'fade',
		'transitionOut': 'fade',
		'speedIn': 600,
		'speedOut': 350,
		'scrolling': 'no',
		'padding': 0
	});
	
	$j("#signupForm #warning").mouseover(function () {
		if ($j("#checkMembership ").css("display", "none")) {
			
		} else {
			$j("#checkMembership ").fadeOut();
		}
		return false;
	});
	
	
	$j("#editMyProfile a[href='#changePassword']").fancybox({
		'titleShow': false,
		'showNavArrows': false,
		'transitionIn': 'fade',
		'transitionOut': 'fade',
		'speedIn': 600,
		'speedOut': 350,
		'scrolling': 'no',
		'padding': 0,
		'onComplete': function() {
			$j('#changePassword input#OldPasswd').focus(); 
		}
	});
	
	$j("#signinPopup").fancybox({
		'autoDimensions': false,
		'titleShow': false,	
		'showNavArrows': false,
		'transitionIn': 'fade',
		'transitionOut': 'fade',
		'speedIn': 600,
		'speedOut': 350,
		'scrolling': 'no',
		'padding': 0,
		'onComplete': function() {
			$j('#signinForm #email ').focus(); 
		}
	});
	
	$j("#presetLoading").fancybox({
		'autoDimensions': false,
		'titleShow': false,	
		'showNavArrows': false,
		'transitionIn': 'fade',
		'transitionOut': 'fade',
		'speedIn': 600,
		'speedOut': 350,
		'scrolling': 'no',
		'padding': 0,
		'onComplete': function() {}
	});
	
	$j("#ospLogin").fancybox({
		'titleShow': false,	
		'showNavArrows': false,
		'transitionIn': 'fade',
		'transitionOut': 'fade',
		'speedIn': 600,
		'speedOut': 350,
		'scrolling': 'no',
		'padding': 0,
		'onComplete': function() {
			$j('#ospSignIn #email ').focus(); 
		}
	});
	
	$j("#changePwdForm").ajaxForm({
		clearForm: true,
		success: function(responseText, statusText, xhr, $form) {
			$j.fancybox({
				'titleShow': false,
				'showNavArrows': false,
				'transitionIn': 'fade',
				'transitionOut': 'fade',
				'speedIn': 600,
				'speedOut': 350,
				'scrolling': 'no',
				'padding': 0,
				'content': responseText,
				'onComplete': function() {
					$j.fancybox.hideActivity();
					$j("#changeResult a").fancybox({
						'titleShow': false,
						'showNavArrows': false,
						'transitionIn': 'fade',
						'transitionOut': 'fade',
						'speedIn': 600,
						'speedOut': 350,
						'scrolling': 'no',
						'padding': 0,
						'onComplete': function() {
							$j.fancybox.hideActivity();
							$j('#changePassword input#OldPasswd').focus(); 
						}
					});
				}
			});
			$j(".modal .inner").cornerz({
				radius: 8,
				background: '#EBEBEB',
				borderColor: '#D4D4D4'
			});
			$j.fancybox.showActivity();
		}
	});
	
	
	$j("#sfcForm").click(function() {
		$j("#sfcForm").ajaxForm({
			clearForm: true,
			url: "checkSignUpBySFCMember.as",
			dataType: 'json',
			beforeSubmit: function() {
				$j.fancybox.showActivity();
				
				if( !$j("#sfcForm").valid() ){
					$j.fancybox.hideActivity();
					return false;
				}
			},
			success: function(data) {
				$j.fancybox.hideActivity();
				if (data.SFC == "fail") {
					alert(data.message);
				}
				if (data.SFC == "success") {
					$j.fancybox.close();
					$j("#mobileMember").remove();
					$j("#signUp p.desc").text(data.ospdesc);
					$j("#emailID").attr("value", data.emailID);
					$j("#firstName").attr("value", data.firstName);
					$j("#lastName").attr("value", data.lastName);
					$j("#birthDate option").each(function() {
						if ($j(this).val() == data.birthDate) {
							$j(this).attr("selected", "selected");
						}
					});
					$j("#birthMonth option").each(function() {
						if ($j(this).val() == data.birthMonth) {
							$j(this).attr("selected", "selected");
						}
					});
					$j("#birthYear option").each(function() {
						if ($j(this).val() == data.birthYear) {
							$j(this).attr("selected", "selected");
						}
					});
					$j("#signupForm #password").focus();
				}
			}
		});
	});
	
	$j.fn.checkValidID = function() {
		// var queryString = $j('.iframe').attr('action') + '?' + $j('.iframe').formSerialize();
		var checkEmailAjaxURL = $j("#checkEmailAjaxURL").val() + '?' + $j(this).fieldSerialize();
		var validFlag = true;
	    var joinByMember = document.getElementById('joinByMember');
		
		$j(this).ajaxSubmit({
			dataType: 'json',
			url: "http://localhost.samsungapps.com/common/test.json",
			success: function(data) {
				alert(data.email);
				if (data.email == "success"){
					document.getElementById("msgCheckExistId").style.display="none";
					document.getElementById("msgCheckId").style.display="none";
					joinByMember.style.display="none";
				} else if (data.email == "fail") {
					document.getElementById("msgCheckExistId").style.display="inline";
					document.getElementById("msgCheckId").style.display="none";
					joinByMember.style.display="none";
					validFlag = false;
				} else if (data.email == "SELLEROSP"){
					document.getElementById("msgCheckId").style.display="none";
					document.getElementById("msgCheckExistId").style.display="none";
					joinByMember.style.display="inline";
					validFlag = false;
				}
			}
		});
		return validFlag;
	};
	
	/*
	$j("#signupForm #emailID").blur(function() {
		validID();
		// $j(this).checkValidID();
	});
	*/
	
	/*
	$j("#signupForm").ajaxForm({
		success: $j(this).checkValidID()
	});
	*/
	
	
	
	$j("#signupForm #countries").change(
		function() {
			var selected = $j("#countries option:selected");
			if (selected.val() != 0) {
				$j("#changeLocale input").attr('value', selected.val());
				$j("#changeLocale").submit();
			}
		}
	);
	
	$j("#myQnAList #checkBoxAll").click(function() {
		$j("#myQnAList input[type='checkbox']").attr('checked', $j(this).is(':checked') ? 'checked' : '' );
	});
	
	var acOptions = {
		delay: 700,
		loadingClass: "ac_loading",
		minChars: 2,
		max: 10,
		scroll: false,
		dataType: 'json', // this parameter is currently unused
		extraParams: {
			format: 'json' // pass the required context to the Zend Controller
		},
		heightOffset: function(offsetTop, inputOffsetHeight){
			//if offsetTop > 100 >> application search side autoComplete width
			var resultTop = offsetTop + inputOffsetHeight;
			return offsetTop > 100 ? resultTop -1 : resultTop +2;
		},
		widthOffset: function(offsetTop, leftValue ){
			//if offsetTop > 100 >> application search side autoComplete width
			return offsetTop > 100 ? leftValue : leftValue -4;
		},
		width: 184,
		parse: function(data) {
			var parsed = [];
			if (data != null) {
				data = data.productList;
				for (var i = 0; i < data.length; i++) {
					parsed[parsed.length] = {
							data         : data[i],
							value        : data[i].productNm,
							result       : data[i].productNm,
							productID    : data[i].productID,
							productNm    : data[i].productNm,
							categoryNm   : data[i].categoryNm,
							img          : data[i].img,
							rating       : data[i].rating,
							discountPrice: data[i].discountPrice
					};
				}
			}
			return parsed;
		},
		parse_bak: function(data) {
			var parsed = [];
			if (data != null) {
				data = data.productList;
				for (var i = 0; i < data.length; i++) {
					parsed[parsed.length] = {
							data: data[i],
							value: data[i].productNm,
							result: data[i].productNm
						};
				}
			}
			return parsed;
		},
		rating: function(rating) {
			var iconValue   = rating < 2 ? "0" + ( rating * 5 ) : rating * 5;
			if (parseInt(iconValue,10) > 50) iconValue = "50";
			return "<img alt=\"\" src=\""+$j("#staticImageURL").val()+"/common/icon/star" + iconValue + ".png\">";
		},
		image: function(image) {
			var lastIndex = image.lastIndexOf(".");
			var sizedImage = image.substring(0,lastIndex) + "_45_45" + image.substring(lastIndex);
			return "<img src=\"" + $j("#registedImageDomain").val() + sizedImage + "\" style=\"width:30px; height:30px;\"alt=\"\"></img>";
		},
		//new
		formatItem: function(item) {
			var tmpProductNm = item.productNm;
			if(tmpProductNm.length >18){ tmpProductNm = tmpProductNm.substring(0,18) + "..";}
			return { 
					"productID"  : item.productID,
					"productNm"  : tmpProductNm,
					"categoryNm" : item.categoryNm,
					"img"        : item.img, 
					"rating"     : item.rating,
					"discountPrice" : item.discountPrice
					};
			
		},
		//original
		formatItem_bak: function(item) {
				
				return item.productNm;
		}
	};
	
	$j(".ajaxSearch").autocomplete($j(".ajaxSearchURL").val(), acOptions);
	
	/*
	$j("#postQnA #firstCombo").chainSelect("#secondCombo", $j("#ajaxURL").val(), {
		before:function (target) {
			$j("#loading").css("display","block");
			$j(target).css("display","none");
		},
		after:function (target) {
			$j("#loading").css("display","none");
			$j(target).css("display","inline");
		}
	});
	*/
	$j("#postQnA #firstCombo").change(function() {
		selectOneDepthCategory();

	});
	$j("#postQnA #deviceList").change(function() {
		var selected = $j("#deviceList option:selected");
		var injection = "<input type='text' id='otherDevice' name='dvceNm' style='vertical-align: bottom' class='Text' />";
		
		if (selected.val() == "00000000") {
				$j("#mobileModel").append(injection);
				$j("#mobileModel #otherDevice").focus();
				$j("#mobileModel label.error[for='deviceList']").remove();
				
		} else {
			if (selected.val() != "00000000") {
				$j("#otherDevice, #mobileModel label.error[for='otherDevice']").remove();
				$j("#postQnA #deviceName").val(selected.text());
			}
		}
	});
	
	
	$j(".external").click(function(){
		window.open(this.href);
		return false;
	}).attr("title", "Opens in a new window");
	
	$j.validator.addMethod("noSpecialChars", function(value, element) {
		return this.optional(element) || /^[a-z0-9\!\@\*\$\^\%\&]+$/i.test(value);
	});
	
	// <, > 문자 입력 못하도록 제한
	$j.validator.addMethod("notPermitionChars", function(value, element, param) {
		if(value.indexOf(">") > -1 || value.indexOf("<") > -1 ){
			return false;
		}
		return true;
	});
	
	//윤년 제한
	var leapCheck = function(param){
		//alert(1);
		if( ( 0 == param.year % 4 && 0 != param.year % 100 ) || 0 == param.year % 400 ){
			if( param.day > 29 ) return false;
		} else {
			if( param.day > 28 ) return false;
		}
		return true;
	};
	
	var monthsCheck = function(param){
		var months = [ 0, 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
		if( param.day > months[Number(param.month)] )
			return false;
		
		return true;		
	};
	
	var currentTimeCompare = function(param){
		var curr = new Date();
		if( curr.getFullYear() < param.year ||
			( curr.getFullYear() == param.year  && curr.getMonth() +1 < param.month ) ||
			( curr.getFullYear() == param.year && curr.getMonth() +1 == param.month && curr.getDate() < param.day ) )
			return false;
		return true;
	};	
	
	$j.validator.addMethod("dateCheck", function(value, element, param) {
		
		if( 0 == param.month.length || 0 == param.year.length || 0 == param.day.length ){
			return true;
		}
		
		if( 2 == param.month && !leapCheck(param) ) 
			return false;
		else if( 2 != param.month && !monthsCheck( param ))
			return false;
		else if( !currentTimeCompare(param) )
			return false;
		
		return true;
	});
	
	$j.validator.addMethod("minorCheck", function(value, element, param) {
		
		if( 0 == param.month.length || 0 == param.year.length || 0 == param.day.length ){
			return true;
		}
		var MAX_DIFF_YEAR = param.max;
		
		var curr = new Date();
		var diffYear  = curr.getFullYear() - param.year;
		var diffMonth = curr.getMonth() +1 - param.month;
		var diffDay   = curr.getDate()     - param.day;
		if( diffYear > MAX_DIFF_YEAR ||
			( diffYear == MAX_DIFF_YEAR && diffMonth > 0 ) ||
			( diffYear == MAX_DIFF_YEAR && diffMonth == 0 && diffDay >= 0 ) ){
			return true;
		}
		return false;
	});
	
});