function form_popup(url) {
	var pwin = window.open(url,'pwin','width=818,height=692,status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes');
	pwin.focus();
}
function new_window(url,w,h) {
	if (w==0 || h==0) {
		window.open(url);
	} else {
		var nwin = window.open(url,'nwin','width='+w+',height='+h+',status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=no');
		nwin.focus();
	}
	return false;
}

function open_window(isrc,ititle,w,h,video) {
	var scrolling = false;
	var str = ',scrollbars=no';
	if ((w && w!=0 && (w > window.screen.availWidth)) || (h && h!=0 && (h > window.screen.availHeight))) {
		str = ',scrollbars=yes';
		scrolling = true;
	}
	try {
		mwin.close();
	} catch(e) {
	}
	var mwin=window.open('','mwin','width=600,height=500,status=no,toolbar=no,menubar=no,location=no,resizable=yes' + str);
	mwin.document.open();
	mwin.document.write(	'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n'
							+'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">\n'
							+'<head>\n'
							+'<title>' + ((ititle=="") ? '&laquo;www.modelskatalog.ru&raquo;' : ititle+'') + '</title>\n'
							+'<script type=\"text/javascript\">\n'
							+'	var isOpera5, isIE;\n'
							+'	var isDOM=document.getElementById?true:false;\n'
							+'	var isOpera=isOpera5=window.opera && isDOM;\n'
							+'	var isMSIE=isIE=document.all && document.all.item && !isOpera;\n'
							+'	function matchSize(obj) {\n'
							+'		if (!isMSIE) {\n'
							+'			var dw = self.outerWidth - self.innerWidth;\n'
							+'			var dh = self.outerHeight - self.innerHeight;\n'
							+'			self.resizeTo(Math.min(obj.width+dw, window.screen.availWidth - 20), Math.min(obj.height+dh, window.screen.availHeight - 20));\n'
							+'			self.moveTo(0,0);\n'
							+'		} else {\n'
							+'			if (document.documentElement && document.documentElement.clientHeight) {\n'
							+'				var w = document.documentElement.clientWidth;\n'
							+'				var h = document.documentElement.clientHeight;\n'
							+'			} else if (document.body) {\n'
							+'				var w = document.body.clientWidth;\n'
							+'				var h = document.body.clientHeight;\n'
							+'			}\n'						
							+'			var dw = Math.min(obj.width, window.screen.availWidth - 50) - w;\n'
							+'			var dh = Math.min(obj.height, window.screen.availHeight - 50) - h;\n'
							+'			window.resizeBy(dw, dh);\n'
							+'			self.moveTo(0,0);\n'
							+'		}\n'
							+'		self.focus();\n'
							+'		return;\n'
							+'	}\n'
							+'</script>'
							+'</head>\n'
							+'<body style="margin: 0px; padding: 0px; background-color: #260103;">\n'
							+'<a href="javascript:void(0);" onclick="window.close(); return false;" title="Кликните, чтобы закрыть окно">'
						);
						if (video) {
							w=600;h=500;
							mwin.document.write(	'<object onload="matchSize(this);" id="mplayer" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,1112" type="application/x-oleobject" width="' + w + '" height="' + h + '" align="middle" vspace="0">\r\n'
													+'<param name="AutoStart" value="1" />\r\n'
													+'<param name="FileName" value="' + isrc + '" />\r\n'
													+'<param name="URL" value="' + isrc + '" />\r\n'
													+'<param name="AutoSize" value="1" />\r\n'
													+'<param name="stretchToFit" value="1" />\r\n'
													+'<param name="ShowDisplay" value="1" />\r\n'
													+'<param name="ShowControls" value="1" />\r\n'
													+'<param name="ShowStatusBar" value="1" />\r\n'
													+'<param name="TransparentAtStart" value="0" />\r\n'
													+'<EMBED onload="matchSize(this);" type="application/x-mplayer2"\r\n'
													+' pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"\r\n'
													+' SRC="' + isrc +'"\r\n'
													+' name="mplayer"\r\n'
													+' width="' + w + '"\r\n'
													+' height="' + h + '"\r\n'
													+' autostart="1"\r\n'
													+' stretchtofit="1"\r\n'
													+' showcontrols="1"\r\n'
													+' autosize="1">\r\n'
													+'</EMBED>\r\n'
													+'</object>\r\n'
													);							
						} else {
							mwin.document.write('<img src="' + isrc + '" border="0" onload="matchSize(this);" alt="Кликните, чтобы закрыть окно" /></a>\n');
						}
	mwin.document.write(	'</body>\n'
							+'</html>'
						);
	mwin.document.close();
	mwin.focus();
}

var isLoaded	=	true;

function utf8_encode (argString) {
    // http://kevin.vanzonneveld.net
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: sowberry
    // +    tweaked by: Jack
    // +   bugfixed by: Onno Marsman
    // +   improved by: Yves Sucaet
    // +   bugfixed by: Onno Marsman
    // +   bugfixed by: Ulrich
    // +   bugfixed by: Rafal Kukawski
    // *     example 1: utf8_encode('Kevin van Zonneveld');
    // *     returns 1: 'Kevin van Zonneveld'

    if (argString === null || typeof argString === "undefined") {
        return "";
    }

    var string = (argString + ''); // .replace(/\r\n/g, "\n").replace(/\r/g, "\n");
    var utftext = "",
        start, end, stringl = 0;

    start = end = 0;
    stringl = string.length;
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;

        if (c1 < 128) {
            end++;
        } else if (c1 > 127 && c1 < 2048) {
            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc !== null) {
            if (end > start) {
                utftext += string.slice(start, end);
            }
            utftext += enc;
            start = end = n + 1;
        }
    }

    if (end > start) {
        utftext += string.slice(start, stringl);
    }

    return utftext;
}
function sha1 (str) {
    // http://kevin.vanzonneveld.net
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // + namespaced by: Michael White (http://getsprink.com)
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // -    depends on: utf8_encode
    // *     example 1: sha1('Kevin van Zonneveld');
    // *     returns 1: '54916d2e62f65b3afa6e192e6a601cdbe5cb5897'
    var rotate_left = function (n, s) {
        var t4 = (n << s) | (n >>> (32 - s));
        return t4;
    };

/*var lsb_hex = function (val) { // Not in use; needed?
        var str="";
        var i;
        var vh;
        var vl;

        for ( i=0; i<=6; i+=2 ) {
            vh = (val>>>(i*4+4))&0x0f;
            vl = (val>>>(i*4))&0x0f;
            str += vh.toString(16) + vl.toString(16);
        }
        return str;
    };*/

    var cvt_hex = function (val) {
        var str = "";
        var i;
        var v;

        for (i = 7; i >= 0; i--) {
            v = (val >>> (i * 4)) & 0x0f;
            str += v.toString(16);
        }
        return str;
    };

    var blockstart;
    var i, j;
    var W = new Array(80);
    var H0 = 0x67452301;
    var H1 = 0xEFCDAB89;
    var H2 = 0x98BADCFE;
    var H3 = 0x10325476;
    var H4 = 0xC3D2E1F0;
    var A, B, C, D, E;
    var temp;

    str = this.utf8_encode(str);
    var str_len = str.length;

    var word_array = [];
    for (i = 0; i < str_len - 3; i += 4) {
        j = str.charCodeAt(i) << 24 | str.charCodeAt(i + 1) << 16 | str.charCodeAt(i + 2) << 8 | str.charCodeAt(i + 3);
        word_array.push(j);
    }

    switch (str_len % 4) {
    case 0:
        i = 0x080000000;
        break;
    case 1:
        i = str.charCodeAt(str_len - 1) << 24 | 0x0800000;
        break;
    case 2:
        i = str.charCodeAt(str_len - 2) << 24 | str.charCodeAt(str_len - 1) << 16 | 0x08000;
        break;
    case 3:
        i = str.charCodeAt(str_len - 3) << 24 | str.charCodeAt(str_len - 2) << 16 | str.charCodeAt(str_len - 1) << 8 | 0x80;
        break;
    }

    word_array.push(i);

    while ((word_array.length % 16) != 14) {
        word_array.push(0);
    }

    word_array.push(str_len >>> 29);
    word_array.push((str_len << 3) & 0x0ffffffff);

    for (blockstart = 0; blockstart < word_array.length; blockstart += 16) {
        for (i = 0; i < 16; i++) {
            W[i] = word_array[blockstart + i];
        }
        for (i = 16; i <= 79; i++) {
            W[i] = rotate_left(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);
        }


        A = H0;
        B = H1;
        C = H2;
        D = H3;
        E = H4;

        for (i = 0; i <= 19; i++) {
            temp = (rotate_left(A, 5) + ((B & C) | (~B & D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;
            E = D;
            D = C;
            C = rotate_left(B, 30);
            B = A;
            A = temp;
        }

        for (i = 20; i <= 39; i++) {
            temp = (rotate_left(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;
            E = D;
            D = C;
            C = rotate_left(B, 30);
            B = A;
            A = temp;
        }

        for (i = 40; i <= 59; i++) {
            temp = (rotate_left(A, 5) + ((B & C) | (B & D) | (C & D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;
            E = D;
            D = C;
            C = rotate_left(B, 30);
            B = A;
            A = temp;
        }

        for (i = 60; i <= 79; i++) {
            temp = (rotate_left(A, 5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;
            E = D;
            D = C;
            C = rotate_left(B, 30);
            B = A;
            A = temp;
        }

        H0 = (H0 + A) & 0x0ffffffff;
        H1 = (H1 + B) & 0x0ffffffff;
        H2 = (H2 + C) & 0x0ffffffff;
        H3 = (H3 + D) & 0x0ffffffff;
        H4 = (H4 + E) & 0x0ffffffff;
    }

    temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);
    return temp.toLowerCase();
}

