/**
  *
  *  Copyright 2006 Housaku Project inc.
  *
  *  このJavaScript は豊作プロジェクトで書かれたものです。
  *  著作権その他あらゆる権利は豊作プロジェクトに帰属します。
  *
  *         http://www.housaku.net/
  *
  *  主に文字チェック系のスクリプトとなります。
  *  
  *  バージョンは Ver 1.0.0 リリース日は 2006/04/17 
  *  作者:akita@housaku.net
  **/
//-------------------- formCheck.js


/**バージョンチェック********************************************************
	* formCheck.js のバージョンを返します。
	* param  無し
	* return バージョン
	*/
	function formCheckVersion(){
		//return ("1.0.0");
	}

/** 数字チェック**************************************************************
	* 0123456789のみかをチェックします。
	* param  value チェックする値
	* return true  : 数字 
	*        false : 数字以外
	*/
	function chkIsNumber(value){
		return (value.match(/[0-9]+/g) == value);
	}

/** 数字ハイフンチェック**************************************************************
	* 0123456789-のみかをチェックします。
	* param  value チェックする値
	* return true  : 数字 
	*        false : 数字以外
	*/
	function chkIsNumberHf(value){
		return (value.match(/[0-9\-]+/g) == value);
	}

/** 空欄チェック**************************************************************
	* 文字数が0かどうかをチェックします。
	* param  value チェックする値
	* return true  : 0 
	*        false : 文字あり
	*/
	function zeroMoji(value){
		return (value.length == 0);
	}


/** 最大文字数チェック********************************************************
	* value に入ってきた文字数を su と
	* 比較し同じ若しくは小さい（以下）を判断。
	* param  value チェックする文字列
	*        su    最大文字数
	* return true  : 文字数以内
	*        false : 文字数オーバー
	*/
	function maxMoji(value,su){
		return (value.length <= su);
	}

/** 最小文字数チェック*********************************************************
	* value に入ってきた文字数を su と
	* 比較し同じ若しくは大きい（以上）を判断。
	* param  value チェックする文字列
	*        su    最小文字数
	* return true  : 文字数以上
	*        false : 文字数少なすぎ
	*/
	function minMoji(value,su){
		return (value.length >= su);
	}

/** 電話番号チェック**************************************************************
	* 頭が 0 かどうかをチェックします。
	* param  value チェックする値
	* return true  : 0 
	*        false : 0以外
	*/
	function chkIsTel(value){
		return (value.charAt(0) == "0");
	}

/** メールアドレスチェック*********************************************************
	* メールアドレスとして適切か？をチェックします。
	* 実在するかどうかの判断は行いません。
	* param  value チェックする文字列
	* return true  : メールアドレスとして適切
	*        false : メールアドレスとして不適切
	*/
	function chkIsMail(value){
		// return (value.match(/[._\-a-zA-Z0-9\/]+\@[_\-a-zA-Z0-9]+\.[_\-a-zA-Z0-9\.]+/g) == value);
		return (value.match(/^[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/g) == value);
	}


/** URLチェック*********************************************************
	* URLとして適切か？をチェックします。
	* 実在するかどうかの判断は行いません。
	* param  value チェックする文字列
	* return true  : URLとして適切
	*        false : URLとして不適切
	*/
	function chkIsUrl(value){
		return (value.match(/[http\:\/\/|https\:\/\/]+[_\-a-zA-Z0-9]+\.[_\-a-zA-Z0-9\.\/\~]+/g) == value);
	}

/** メッセージプリント**************************************************
	* 入力エラーを判断し、必要メッセージを div ブロックにプリントする。
	* エラーの無い場合、div ブロックを非表示にする
	* param  value メッセージ
	*        divId div ブロックのID
	* return 無し void
	*
	*/
	function msgPrint(value,divId){
		if (value.length == "0"){
			document.getElementById(divId).style.display = "none";
		}else{
			document.getElementById(divId).style.display = "block";
			document.getElementById(divId).innerText = value;
			document.getElementById(divId).textContent = value; //for Firefox
			document.getElementById(divId).style.color = "#ff0000";
		}
	}



/** 数字カンマ付けプログラム**************************************************
	* unibon (unibon@yahoo.co.jp) の著作関数
	* http://www.geocities.co.jp/SiliconValley/4334/unibon/copyright.html
	* 上記にてフリーとの事
	* ソースは
	* http://www.geocities.co.jp/SiliconValley/4334/unibon/javascript/formatnumber.html
	* より取得
	*/
// (すべての変数に格納する値は0オリジンとする) 
function myFormatNumber(x) { // 引数の例としては 95839285734.3245
    var s = "" + x; // 確実に文字列型に変換する。例では "95839285734.3245"
    var p = s.indexOf("."); // 小数点の位置を0オリジンで求める。例では 11
    if (p < 0) { // 小数点が見つからなかった時
        p = s.length; // 仮想的な小数点の位置とする
    }
    var r = s.substring(p, s.length); // 小数点の桁と小数点より右側の文字列。例では ".3245"
    for (var i = 0; i < p; i++) { // (10 ^ i) の位について
        var c = s.substring(p - 1 - i, p - 1 - i + 1); // (10 ^ i) の位のひとつの桁の数字。例では "4", "3", "7", "5", "8", "2", "9", "3", "8", "5", "9" の順になる。
        if (c < "0" || c > "9") { // 数字以外のもの(符合など)が見つかった
            r = s.substring(0, p - i) + r; // 残りを全部付加する
            break;
        }
        if (i > 0 && i % 3 == 0) { // 3 桁ごと、ただし初回は除く
            r = "," + r; // カンマを付加する
        }
        r = c + r; // 数字を一桁追加する。
    }
    return r; // 例では "95,839,285,734.3245"
}

/***************************************************
for piece maxlimit check
written by ananth
****************************************************/
//for Kikan_MiniSu buylimit validation 
function KikanMiniSu(MiniSu, Buylimit, PiceCnt, CartOnSu){
	var MiniSu		= MiniSu; 
	var Buylimit	= Buylimit;
	var PiceCnt		= PiceCnt;
	var CartOnSu	= CartOnSu;
	var Msg			= "";
	var Result;

	if((!PiceCnt) || (PiceCnt == '') || (!IsNumber(PiceCnt)) || (PiceCnt == '0') || (PiceCnt == 0)){
		alert("購入数を確認して下さい。");
		return false; 
	}

	if((IsNumeric(PiceCnt)) && (parseInt(PiceCnt) > 0) && (IsNumeric(Buylimit)) && (parseInt(Buylimit) >= 0))
	{

		if((parseInt(PiceCnt) > parseInt(Buylimit)) && (parseInt(Buylimit) != 0)){
			Msg += "販売制限数を超えています。\n";
		}
		if((IsNumeric(MiniSu)) && (parseInt(MiniSu) > 1))
		{
			Result = (parseInt(PiceCnt) / parseInt(MiniSu));
			if(!IsNumeric(Result)){ 
				Msg += "販売単位は"+MiniSu+"ずつになります。";
			}
		}
		if(!Msg){
			if(parseInt(PiceCnt) > parseInt(CartOnSu)){
				Msg += "販売単位は"+CartOnSu+"ずつになります。";
			}	
		}
	}
	if(Msg){
		alert(Msg); 
		if(navigator.userAgent.toLowerCase().indexOf("firefox") >= 0){
			return false;
		}else{
			event.returnValue=false;
			event.cancel = true;
		}
	}
	return true;
}
function IsNumeric(InputTxt){
	var regex=/^[0-9]*$/;
	if(regex.exec(InputTxt)){return true;}else{return false;}
}


function PopupWindow(url){

	zaikoWin = window.open(url,"zaikoWin","width=700,height=450,scrollbars=yes,resizable=yes");
	zaikoWin.focus();

}

//for jquery link 2011/02/09
function KikanMiniSu_New(MiniSu, Buylimit, PiceCnt, CartOnSu){
	var MiniSu		= MiniSu; 
	var Buylimit	= Buylimit;
	var PiceCnt		= PiceCnt;
	var CartOnSu	= CartOnSu;
	var Msg			= "";
	var Result;
	
	if((IsNumeric(PiceCnt)) && (PiceCnt > 0) && (IsNumeric(Buylimit)) && (Buylimit >= 0))
	{
		if((parseInt(PiceCnt) > parseInt(Buylimit)) && (parseInt(Buylimit) != 0)){
			Msg += "販売制限数を超えています。\n";
		}
		if((IsNumeric(MiniSu)) && (parseInt(MiniSu) > 1))
		{
			Result = (parseInt(PiceCnt) / parseInt(MiniSu));
			if(!IsNumeric(Result)){ 
				Msg += "販売単位は"+MiniSu+"ずつになります。";
			}
		}
		if(!Msg){
			if(parseInt(PiceCnt) > parseInt(CartOnSu)){
				Msg += "販売単位は"+CartOnSu+"ずつになります。";
			}	
		}
	}
	if(Msg){
		alert(Msg); 
		return "0";
	}
	return "1";
}



/*******************piece maxlimit check*************/

