(function($){
    $.fn.bgIframe = $.fn.bgiframe = function(s){
        if ($.browser.msie && /6.0/.test(navigator.userAgent)) {
            s = $.extend({
                top: 'auto',
                left: 'auto',
                width: 'auto',
                height: 'auto',
                opacity: true,
                src: 'javascript:false;'
            }, s ||
            {});
            var prop = function(n){
                return n && n.constructor == Number ? n + 'px' : n;
            }, html = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="' + s.src + '"' + 'style="display:block;position:absolute;z-index:-1;' + (s.opacity !== false ? 'filter:Alpha(Opacity=\'0\');' : '') + 'top:' + (s.top == 'auto' ? 'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')' : prop(s.top)) + ';' + 'left:' + (s.left == 'auto' ? 'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')' : prop(s.left)) + ';' + 'width:' + (s.width == 'auto' ? 'expression(this.parentNode.offsetWidth+\'px\')' : prop(s.width)) + ';' + 'height:' + (s.height == 'auto' ? 'expression(this.parentNode.offsetHeight+\'px\')' : prop(s.height)) + ';' + '"/>';
            return this.each(function(){
                if ($('> iframe.bgiframe', this).length == 0) 
                    this.insertBefore(document.createElement(html), this.firstChild);
            });
        }
        return this;
    };
})(jQuery);

(function($){
    var weebox = function(content, options){
        var self = this;
        this._dragging = false;
        this._content = content;
        this._options = options;
        this.dh = null;
        this.mh = null;
        this.dt = null;
        this.dc = null;
        this.bo = null;
        this.bc = null;
        this.selector = null;
        this.ajaxurl = null;
        this.options = null;
        this.defaults = {
            boxid:null,
            boxclass: null,
            type: 'dialog',
            title: '',
            width: 0,
            height: 0,
            timeout: 0,
            draggable: true,
            modal: true,
            focus: null,
            position: 'center',
            overlay: 75,
            showTitle: true,
            showButton: true,
            showCancel: true,
            showOk: true,
            okBtnName: '确定',
            cancelBtnName: '取消',
            contentType: 'text',
            contentChange: false,
            clickClose: false,
            zIndex: 999,
            animate: false,
            trigger: null,
            onclose: null,
            onopen: null,
            onok: null
        };
        this.types = new Array("dialog", "error", "warning", "success", "prompt", "box");
        this.titles = {
            "error": "!! Error !!",
            "warning": "Warning!",
            "success": "Success",
            "prompt": "Please Choose",
            "dialog": "Dialog",
            "box": ""
        };
        
        this.initOptions = function(){
            if (typeof(self._options) == "undefined") {
                self._options = {};
            }
            if (typeof(self._options.type) == "undefined") {
                self._options.type = 'dialog';
            }
            if (!$.inArray(self._options.type, self.types)) {
                self._options.type = self.types[0];
            }
            if (typeof(self._options.boxclass) == "undefined") {
                self._options.boxclass = self._options.type + "box";
            }
            if (typeof(self._options.title) == "undefined") {
                self._options.title = self.titles[self._options.type];
            }
            if (content.substr(0, 1) == "#") {
                self._options.contentType = 'selector';
                self.selector = content;
            }
            self.options = $.extend({}, self.defaults, self._options);
        };
        
        this.initBox = function(){
            var html = '';
            if (self.options.type == 'wee') {
                html = '<div class="weedialog">' +
                '	<div class="dialog-header">' +
                '		<div class="dialog-tl"></div>' +
                '		<div class="dialog-title"></div>' +
                '		<div class="dialog-tr">' +
                '			<div class="dialog-close" title="关闭"><a href="#"></a></div>' +
                '		</div>' +
                '	</div>' +
                '	<div class="dialog-con">' +
                '		<div class="dialog-con2">' +
                '			<div class="dialog-content"></div>' +
                '			<div class="dialog-button">' +
                '				<input type="button" class="dialog-ok" value="确认" />&nbsp;' +
                '				<input type="button" class="dialog-cancel" value="取消" />' +
                '			</div>' +
                '		</div>' +
                '	</div>' +
                '	<div class="dialog-bot">' +
                '		<div class="dialog-bl"></div>' +
                '		<div class="dialog-bc"></div>' +
                '		<div class="dialog-br"></div>' +
                '	</div>' +
                '</div>';
            }
            else {
                html = "<div class='dialog-box'>" +
                "<div class='dialog-header'>" +
                "<div class='dialog-title'></div>" +
                "<div class='dialog-close'></div>" +
                "</div>" +
                
                "<div class='dialog-content'>" +
                "	<div id='formBox' style='display:none'>" +
                "	   <div class='login_show'>" +
                "		<ol>" +
                "			<li><label for='username'>用户名：</label><input name='username' type='text' id='username' class='user' /></li>" +
                "			<li><label for='password'>密码：</label><input name='password' type='password' id='password' class='password' /></li>" +
                
                "		</ol>" +
                "		<div id='msg' class='msg'></div>" +
                "	   </div>" +
                "	</div>" +
                "</div>" +
                
                
                "<div class='dialog-content'>" +
                "	<div id='formBox' style='display:none'>" +
                "	   <div class='login_show'>" +
                "		<ol>" +
                "			<li><label for='username'>用户名：</label><input name='username2' type='text' id='username2' class='user' />必填</li>" +
                "			<li><label for='password'>密码：</label><input name='password2' type='password' id='password2' class='password' />必填</li>" +
                "			<li><label for='password2'>重复密码：</label><input name='password3' type='password' id='password3' class='password' />必填</li>" +
                "			<li><label for='email'>电子邮件：</label><input name='email' type='text' id='email' class='email' />必填</li>" +
                "		</ol>" +
                "		<div id='msg' class='msg'>11</div>" +

                "	   </div>" +
                "	</div>" +
                "</div>" +
                
                "<div style='clear:both'></div>" +
                "<div class='dialog-button'>" +

                "<input type='submit' class='dialog-ok' value='确定' onclick='getUser();'>" +
                "<input type='button' class='dialog-cancel' value='取消'></form>" +
                "<input type='submit' value='免费注册' onclick='z_z(0)'>" +
                "</div>";
                
            }
            self.dh = $(html).appendTo('body').hide().css({
                position: 'absolute',
                overflow: 'hidden',
                zIndex: self.options.zIndex
            });
            self.dt = self.dh.find('.dialog-title');
            self.dc = self.dh.find('.dialog-content');
            self.bo = self.dh.find('.dialog-ok').eq(0);
            self.bc = self.dh.find('.dialog-cancel');
            if (self.options.boxid) {
                self.dh.attr('id', self.options.boxid);
            }
            if (self.options.boxclass) {
                self.dh.addClass(self.options.boxclass);
            }
            if (self.options.height > 0) {
                self.dc.css('height', self.options.height);
            }
            if (self.options.width > 0) {
                self.dh.css('width', self.options.width);
            }
            self.dh.bgiframe();
        }
        
        this.initMask = function(){
            if (self.options.modal) {
                self.mh = $("<div class='dialog-mask'></div>").appendTo('body').hide().css({
                    opacity: self.options.overlay / 100,
                    filter: 'alpha(opacity=' + self.options.overlay + ')',
                    width: self.bwidth(),
                    height: self.bheight(),
                    zIndex: self.options.zIndex - 1
                });
            }
        }
        
        this.initContent = function(content){
            self.dh.find(".dialog-ok").val(self.options.okBtnName);
            self.dh.find(".dialog-cancel").val(self.options.cancelBtnName);
            self.dh.find('.dialog-title').html(self.options.title);
            if (!self.options.showTitle) {
                self.dh.find('.dialog-header').hide();
            }
            if (!self.options.showButton) {
                self.dh.find('.dialog-button').hide();
            }
            if (!self.options.showCancel) {
                self.dh.find('.dialog-cancel').hide();
            }
            if (!self.options.showOk) {
                self.dh.find(".dialog-ok").hide();
            }
            if (self.options.contentType == "selector") {
                self.selector = self._content;
                self._content = $(self.selector).html();
                self.setContent(self._content);
                //if have checkbox do
                var cs = $(self.selector).find(':checkbox');
                self.dh.find('.dialog-content').find(':checkbox').each(function(i){
                    this.checked = cs[i].checked;
                });
                $(self.selector).empty();
                self.onopen();
                self.show();
                self.focus();
            }
            else 
                if (self.options.contentType == "ajax") {
                    self.ajaxurl = self._content;
                    self.setContent('<div class="dialog-loading"></div>');
                    self.show();
                    $.get(self.ajaxurl, function(data){
                        self._content = data;
                        self.setContent(self._content);
                        self.onopen();
                        self.focus();
                    });
                }
                else {
                    self.setContent(self._content);
                    self.onopen();
                    self.show();
                    self.focus();
                }
        }
        
        this.initEvent = function(){
            self.dh.find(".dialog-close, .dialog-cancel").unbind('click').click(function(){
                self.close();
            });
            if (typeof(self.options.onok) == "function") {
                self.dh.find(".dialog-ok").unbind('click').click(self.options.onok);
            }
            if (typeof(self.options.oncancel) == "function") {
                self.dh.find(".dialog-cancel").unbind('click').click(self.options.oncancel);
            }
            if (self.options.timeout > 0) {
                //window.setTimeout(self.close, (self.options.timeout * 1000));
            }
            this.draggable();
        }
        
        this.draggable = function(){
            if (self.options.draggable && self.options.showTitle) {
                self.dh.find('.dialog-header').mousedown(function(event){
                    self._ox = self.dh.position().left;
                    self._oy = self.dh.position().top;
                    self._mx = event.clientX;
                    self._my = event.clientY;
                    self._dragging = true;
                });
                if (self.mh) {
                    var handle = self.mh;
                }
                else {
                    var handle = $(document);
                }
                $(document).mousemove(function(event){
                    if (self._dragging == true) {
                        //window.status = "X:"+event.clientX+"Y:"+event.clientY;
                        self.dh.css({
                            left: self._ox + event.clientX - self._mx,
                            top: self._oy + event.clientY - self._my
                        });
                    }
                }).mouseup(function(){
                    self._mx = null;
                    self._my = null;
                    self._dragging = false;
                });
                var e = self.dh.find('.dialog-header').get(0);
                e.unselectable = "on";
                e.onselectstart = function(){
                    return false;
                };
                if (e.style) {
                    e.style.MozUserSelect = "none";
                }
            }
        }
        
        this.onopen = function(){
            if (typeof(self.options.onopen) == "function") {
                self.options.onopen();
            }
        }
        
        this.show = function(){
            if (self.options.position == 'center') {
                self.setCenterPosition();
            }
            if (self.options.position == 'element') {
                self.setElementPosition();
            }
            if (self.options.animate) {
                self.dh.fadeIn("slow");
                if (self.mh) {
                    self.mh.fadeIn("normal");
                }
            }
            else {
                self.dh.show();
                if (self.mh) {
                    self.mh.show();
                }
            }
        }
        
        this.focus = function(){
            if (self.options.focus) {
                self.dh.find(self.options.focus).focus();
            }
            else {
                self.dh.find('.dialog-cancel').focus();
            }
        }
        
        this.find = function(selector){
            return self.dh.find(selector);
        }
        
        this.setTitle = function(title){
            self.dh.find('.dialog-title').html(title);
        }
        
        this.getTitle = function(){
            return self.dh.find('.dialog-title').html();
        }
        
        this.setContent = function(content){
            self.dh.find('.dialog-content').html(content);
        }
        
        this.getContent = function(){
            return self.dh.find('.dialog-content').html();
        }
        
        this.hideButton = function(btname){
            self.dh.find('.dialog-' + btname).hide();
        }
        
        this.showButton = function(btname){
            self.dh.find('.dialog-' + btname).show();
        }
        
        this.setButtonTitle = function(btname, title){
            self.dh.find('.dialog-' + btname).val(title);
        }
        
        this.close = function(){
            if (self.animate) {
                self.dh.fadeOut("slow", function(){
                    self.dh.hide();
                });
                if (self.mh) {
                    self.mh.fadeOut("normal", function(){
                        self.mh.hide();
                    });
                }
            }
            else {
                self.dh.hide();
                if (self.mh) {
                    self.mh.hide();
                }
            }
            if (self.options.contentType == 'selector') {
                if (self.options.contentChange) {
                    //if have checkbox do
                    var cs = self.find(':checkbox');
                    $(self.selector).html(self.getContent());
                    if (cs.length > 0) {
                        $(self.selector).find(':checkbox').each(function(i){
                            this.checked = cs[i].checked;
                        });
                    }
                }
                else {
                    $(self.selector).html(self._content);
                }
            }
            if (typeof(self.options.onclose) == "function") {
                self.options.onclose();
            }
            self.dh.remove();
            if (self.mh) {
                self.mh.remove();
            }
        }
        
        this.bheight = function(){
            if ($.browser.msie && $.browser.version < 7) {
                var scrollHeight = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);
                var offsetHeight = Math.max(document.documentElement.offsetHeight, document.body.offsetHeight);
                
                if (scrollHeight < offsetHeight) {
                    return $(window).height();
                }
                else {
                    return scrollHeight;
                }
            }
            else {
                return $(document).height();
            }
        }
        
        this.bwidth = function(){
            if ($.browser.msie && $.browser.version < 7) {
                var scrollWidth = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);
                var offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
                
                if (scrollWidth < offsetWidth) {
                    return $(window).width();
                }
                else {
                    return scrollWidth;
                }
            }
            else {
                return $(document).width();
            }
        }
        
        this.setCenterPosition = function(){
            var wnd = $(window), doc = $(document), pTop = doc.scrollTop(), pLeft = doc.scrollLeft(), minTop = pTop;
            pTop += (wnd.height() - self.dh.height()) / 2;
            pTop = Math.max(pTop, minTop);
            pLeft += (wnd.width() - self.dh.width()) / 2;
            self.dh.css({
                top: pTop,
                left: pLeft
            });
        }
        
        this.setElementPosition = function(){
            var trigger = $("#" + self.options.trigger);
            if (trigger.length == 0) {
                alert('请设置位置的相对元素');
                self.close();
                return false;
            }
            var scrollWidth = 0;
            if (!$.browser.msie || $.browser.version >= 7) {
                scrollWidth = $(window).width() - document.body.scrollWidth;
            }
            
            var left = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) + trigger.position().left;
            if (left + self.dh.width() > document.body.clientWidth) {
                left = trigger.position().left + trigger.width() + scrollWidth - self.dh.width();
            }
            var top = Math.max(document.documentElement.scrollTop, document.body.scrollTop) + trigger.position().top;
            if (top + self.dh.height() + trigger.height() > document.documentElement.clientHeight) {
                top = top - self.dh.height() - 5;
            }
            else {
                top = top + trigger.height() + 5;
            }
            self.dh.css({
                top: top,
                left: left
            });
            return true;
        }
        //PNG透明图片
        this.correctPNG = function(){
            for (var i = 0; i < document.images.length; i++) {
                var img = document.images[i]
                var imgName = img.src.toUpperCase()
                if (imgName.substring(imgName.length - 3, imgName.length) == "PNG") {
                    var imgID = (img.id) ? "id='" + img.id + "' " : ""
                    var imgClass = (img.className) ? "class='" + img.className + "' " : ""
                    var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
                    var imgStyle = "display:inline-block;" + img.style.cssText
                    if (img.align == "left") 
                        imgStyle = "float:left;" + imgStyle
                    if (img.align == "right") 
                        imgStyle = "float:right;" + imgStyle
                    if (img.parentElement.href) 
                        imgStyle = "cursor:hand;" + imgStyle
                    var strNewHTML = "<span " + imgID + imgClass + imgTitle + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";" + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
                    img.outerHTML = strNewHTML;
                    i = i - 1;
                }
            }
        }
        //窗口初始化	
        this.initialize = function(){
            self.initOptions();
            self.initMask();
            self.initBox();
            self.initContent();
            self.initEvent();
            self.correctPNG();
			z_z();
            return self;
        }
        //初始化
        this.initialize();
    }
    
    var weeboxs = function(){
        var self = this;
        this._onbox = false;
        this._opening = false;
        this.boxs = new Array();
        this.zIndex = 999;
        this.push = function(box){
            this.boxs.push(box);
        }
        this.pop = function(){
            if (this.boxs.length > 0) {
                return this.boxs.pop();
            }
            else {
                return false;
            }
        }
        this.open = function(content, options){
            self._opening = true;
            if (typeof(options) == "undefined") {
                options = {};
            }
            if (options.boxid) {
                this.close(options.boxid);
            }
            options.zIndex = this.zIndex;
            this.zIndex += 10;
            var box = new weebox(content, options);
            box.dh.click(function(){
                self._onbox = true;
            });
			
            this.push(box);
            return box;
        }
        this.close = function(id){
            if (id) {
                for (var i = 0; i < this.boxs.length; i++) {
                    if (this.boxs[i].dh.attr('id') == id) {
                        this.boxs[i].close();
                        this.boxs.splice(i, 1);
                    }
                }
            }
            else {
                this.pop().close();
            }
        }
        this.length = function(){
            return this.boxs.length;
        }
        this.getTopBox = function(){
            return this.boxs[this.boxs.length - 1];
        }
        this.find = function(selector){
            return this.getTopBox().dh.find(selector);
        }
        this.setTitle = function(title){
            this.getTopBox().setTitle(title);
        }
        this.getTitle = function(){
            return this.getTopBox().getTitle();
        }
        this.setContent = function(content){
            this.getTopBox().setContent(content);
        }
        this.getContent = function(){
            return this.getTopBox().getContent();
        }
        this.hideButton = function(btname){
            this.getTopBox().hideButton(btname);
        }
        this.showButton = function(btname){
            this.getTopBox().showButton(btname);
        }
        this.setButtonTitle = function(btname, title){
            this.getTopBox().setButtonTitle(btname, title);
        }
        $(window).scroll(function(){
            if (self.length() > 0) {
                var box = self.getTopBox();
                if (box.options.position == "center") {
                    self.getTopBox().setCenterPosition();
                }
            }
        });
        $(document).click(function(){
            if (self.length() > 0) {
                var box = self.getTopBox();
                if (!self._opening && !self._onbox && box.options.clickClose) {
                    box.close();
                }
            }
            self._opening = false;
            self._onbox = false;
        });
		
    }

	
    $.extend({
        weeboxs: new weeboxs()
    });
		

})(jQuery);

function z_z(o){
	var tmp = "<div>" +
        "	   <div class='login_show'>" +
        "		<ol>" +
        "			<li><label for='username'>用户名：</label><input name='username2' type='text' id='username2' class='user' />(必填)</li>" +
        "			<li><label for='password'>密码：</label><input name='password2' type='password' id='password2' class='password' />(必填)</li>" +
        "			<li><label for='password2'>重复密码：</label><input name='password3' type='password' id='password3' class='password' />(必填)</li>" +
        "			<li><label for='email'>电子邮件：</label><input name='email' type='text' id='email' class='email' />(必填)</li>" +
        "		</ol>" +
		"		<div style=\"clear: both; padding: 0 0 0 22px;color:#6699FF;\">注册后 预订产品得积分，</br>兑换超值礼品，更可享受个性化服务！</div>"+
        "		<div id='msg2' class='msg'></div>" +
        "	   </div>" +
        "	</div>",

		sumTmp = "<input type='submit' value='返回' onclick='z_z(-1)'>",
		tag = $(".dialog-box").eq(0),
		sBar = $(".dialog-button").eq(0),
		sTmp = "<input type='submit' value='免费注册' onclick='z_z(0)'>",
		content = tag.find(".dialog-content"),
		submitKey = tag.find(".dialog-ok"),
		type = o;
	
	if(content.length > 1 && content.eq(1).css("display") == "block"){
		content.eq(1).css("display","none");
		content.eq(1).html(tmp);
	}
	
	if(o == 0){
		submitKey.unbind();
		submitKey.click(function(){
			RegUser();
		})
		content.eq(0).css("display","none");
		content.eq(1).css("display","block");
		sBar.find("input").eq(2).remove();
		sBar.append(sumTmp);
	}
	
	if(o == -1){
		submitKey.unbind();
		submitKey.click(function(){
			getUser();
		})
		content.eq(1).css("display","none");
		content.eq(0).css("display","block");
		sBar.find("input").eq(2).remove();
		sBar.append(sTmp);
	}
	
};
