/*
 * Browser Script Tip Board
 * [library] js_validation.js - Email, leap year, SSN, RIN
 * written by Qindex at 2004-06-06 23:55 / 218.145.25.80
 * http://www.qindex.info/
 *
**/
    function Q_is_leap_year(strng) {
        if(!Q_is_valid_number(strng)) return false;
        if(strng%4==0) {
            if(strng%100==0) {
                if(strng%400) return true;
                else return false;
            } else return true;
        } else return false;
    }

    function Q_is_valid_Email(strng) {
        re1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
        re2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
        if( re1.test(strng) || !re2.test(strng) ) return false;
        return true;
    }

    function Q_is_valid_number(strng) { 
        if (strng.length==0 || isNaN(strng)) return false;
        return true;
    }

    function Q_is_valid_RIN_Kr(strng) {
        re = /^[0-9]{3}-[0-9]{2}-[0-9]{5}$/;
        if (!re.test(strng)) return false;
        strng_new = strng.replace(/^([0-9]{3})-([0-9]{2})-([0-9]{5})$/,"$1$2$3");
        strng_add = "137137135";
        var tmp = 0;
        for(n=0; n<9; n++) tmp += strng_new.charAt(n)*strng_add.charAt(n);
        tmp += strng_new.charAt(8)*5/10;
        tmp = (10 - (tmp % 10))%10;
        if (tmp!=strng_new.charAt(9)) return false;
        return true;
    }

    function Q_is_valid_SSN_Kr(ssnstrng) {
        re = /^[0-9]{6}-?[0-9]{7}$/;
        if (!re.test(ssnstrng)) return false;
        strng_new = ssnstrng.replace("-","");
        var year   = parseInt(strng_new.substr(0,2),10);
        var month  = parseInt(strng_new.substr(2,2),10);
        var day    = parseInt(strng_new.substr(4,2),10);
        var gender = parseInt(strng_new.charAt(6)  ,10);
        if ( month<1 || month>12 || gender<1 || gender>4 ) return false;

        var arrayOfLasts = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
        if(month==2) {
            year += (gender<3 ? 1900 : 2000);
            if(Q_is_leap_year(year)) arrayOfLasts[1] = 29;
        }
        if(day<1 || day>arrayOfLasts[month-1]) return false;

        var tmp = 0;
        for(var n=0; n<12; n++) tmp += (n%8+2) * parseInt(strng_new.charAt(n),10);
        tmp = (11-(tmp%11))%10;
        if (tmp != strng_new.charAt(12)) return false;
        return true;
    }

    function Q_create_SSN_Kr(year,month,day,gender) { //gender: male, female
        var strng = '';
        strng += year%100;
        if(month<10) strng += '0';
        strng += month;
        if(day<10) strng += '0';
        strng += day;
        var crrnt = new Date();
        if(year>1900 && year<2000) {
            if     (gender=='male'  ) strng += '1';
            else if(gender=='female') strng += '2';
        } else if(year>2000 && year<=crrnt.getUTCFullYear()) {
            if     (gender=='male'  ) strng += '3';
            else if(gender=='female') strng += '4';
        }
        for(n=0; n<5; n++) strng += Math.round(Math.random()*10);
        var tmp = 0;
        for(var n=0; n<12; n++)
            tmp += (n%8+2) * parseInt(strng.charAt(n),10);
        tmp = (11-(tmp%11))%10;
        strng += tmp;
        return strng;
    }
    
	function trim (strSource) { //ÁÂ¿ì °ø¹éÁ¦°Å
		re = /^\s+|\s+$/g;
	
		return strSource.replace(re, '');
	}
	
	function ltrim (strSource) { //¿ÞÂÊ °ø¹éÁ¦°Å
		re = /^\s+/g;
	
		return strSource.replace(re, '');
	}
	
	function rtrim (strSource) { //¿À¸¥ÂÊ °ø¹éÁ¦°Å
		re = /\s+$/g;
	
		return strSource.replace(re, '');
	}

