﻿// JScript 文件 机票项目的相关JS方法 
// add by bobyzong at 08-6-24

function ShowWindow(url,width,height){
    var scWith = (window.screen.width / 2) - (width / 2);
    var scHeight = (window.screen.height / 2) - (height / 2);
    window.open(url,'','top=' + scHeight + ',left=' + scWith +',width=' + width + ',height=' + height + ',resizable=yes,scrollbars=yes,menubar=no,location=no,toolbar=no'); 
}

// 以模式对话框的形式打开一个窗口
function showModelDialog(url,args,width,height){
    return window.showModalDialog(url,args,'dialogHeight: ' + height + 'px;dialogWidth:' + width + 'px;status:no;help:no;resizable:yes;scroll:yes;center:yes;');
}

//关闭本窗口并刷新父窗口
function closeMeAndReloadParent(alertMsg){
    if ( alertMsg ){
        alert( alertMsg );
        opener.location.reload();
        window.close();
    } else {
        opener.location.reload();
        window.close();
    }
}
//关闭当前窗口
function closeMe(){window.close();}

/*
 说  明：获取某个元素的位置
 创建人：grs
 用  法：var h = offset(divTest, 'Top');//获取divTest这个元素距页面顶部的位置
*/
function offset( el,t ){
    var p=0;
    while(el){
        p += el["offset"+t];
        el = el.offsetParent;
    }
    return p;
}

/*
 说  明：将字符串的两端空格去掉
 创建人：grs
 用  法：var str = " test ";
        alert( str.length );//显示是6
        str.trim();
        alert( str.length );//显示是4
*/
String.prototype.trim = function(){ 
    return this.replace(/(^\s*)|(\s*$)/g, "");  
}

/*
 说  明： 字符串联合方法
 创建者： grs
 用  法： var str = "我是{0}，我的职业是{1}！";
        str = String.format( str, "郭瑞山", "程序员" );
        alert( str );
 结  果： 我是郭瑞山，我的职业是程序员！
*/
String.format = function( str, args ){
    if ( !str ) return "";
    var reg = /\{[\d]+\}/g;
    if ( !str.match(reg) ) return str;
    if ( str.match(reg).length == 0 ) return str;
    if ( !args ) return str.replace( reg, "" );
    var s = "";
    for (var i = 0; i < arguments.length-1; i++){
        s = i + "+";
        reg = new RegExp("\{" + s + "\}");
        str = str.replace( reg, arguments[i+1] );
    }
    return str;
}
String.prototype.format = function(){
	var args = arguments;
	return this.replace( /\{(\d+)\}/gi, function(w,i){return args[i];} );
}
/*
* 将全角字符转换为半角字符 
*/
function CtoH(str){
    var result="";
    for (var i = 0; i < str.length; i++){
        if (str.charCodeAt(i)==12288){
            result+= String.fromCharCode(str.charCodeAt(i)-12256);
            continue;
        }
        if (str.charCodeAt(i)>65280 && str.charCodeAt(i)<65375)
            result+= String.fromCharCode(str.charCodeAt(i)-65248);
        else 
            result+= String.fromCharCode(str.charCodeAt(i));
    }
    return result;
} 
               
function getNextElement(field){
    var form = field.form;
    for (var e = 0; e < form.elements.length; e++) { 
        if (field == form.elements[e])
            break;
    }
    return form.elements[++e % form.elements.length];
}

/*
* 检查传入的字符串中是否包含非法字符
*/
function containsSpecialChar( str ){
    var re = /select|update|delete|exec|count|'|"|=|;|>|<|%/i;
    //var re=/^?(.*)(select%20|insert%20|delete%20from%20|count(|drop%20table|update%20truncate%20|asc(|mid(|char(|xp_cmdshell|exec%20master|net%20localgroup%20administrators|"|:|net%20user|"|%20or%20)(.*)$/gi;
    var e = re.test( str );
    
    return (e ? 1 : 0);
}

//将enter键替换成tab键
document.onkeydown=function(evt){
    var isie = (document.all) ? true : false; 
    var key; 
    var srcobj;
    if (isie){
        key = event.keyCode; 
        srcobj=event.srcElement;
    }else{
        key = evt.which; 
        srcobj=evt.target;
    }
    if(key==13 && srcobj.type!='button' && srcobj.type!='submit' &&srcobj.type!='reset' && srcobj.type!='textarea' && srcobj.type!=''){
        if(isie){
            event.keyCode=9;
        }else{
            var el=getNextElement(evt.target);
            if (el.type!='hidden')
                el.focus();
            else
                while (el.type=='hidden')
                    el=getNextElement(el);
                el.focus();
            return false;
        }
    }
} 

