	if (typeof w_gt_content == 'undefined')
	{
		var w_gt_content = [];
		var w_gt_transferdata = [];
		var w_gt_numbers = [];
		var w_gt_player_loaded = false;
	}
	function P_getWidget(widgetId)
	{
		var href = "http://widget.pozhelau.ru";
		if(typeof jQuery!='function') { document.write("<scri"+""+"pt type=\"text/javascript\" src=\""+href+"/jquery-1.4.2.min.js\"></script>");
		} else if (jQuery.fn.jquery != '1.4.2') {
			document.write("<scri"+""+"pt type=\"text/javascript\" src=\""+href+"/jquery-1.4.2.min.js\"></script>");
		}
		document.write('<div id="widget_gt_'+widgetId+'_unical"></div>');
		document.write("<scri"+""+"pt type=\"text/javascript\" id=\"wt_big_script_"+widgetId+"\" src=\""+ href +"/?act=get&w="+ widgetId +"\"></script>");
	}
	
	function bw(wid) {P_buildWidget(w_gt_content[wid])}
	
	function P_buildWidget(data)
	{
		w_gt_content[data.id] = data;

		if (typeof jQuery != 'function') {
			setTimeout("bw("+data.id+");",50);
			return;
		}
		
		if (jQuery.fn.jquery != '1.4.2') {
			setTimeout("bw("+data.id+");",50);
			return;
		}
		
			jQuery("#wt_big_script_"+data.id).remove();
			w_gt_content[data.id] = data.data;
			w_gt_content[data.id]['host'] = data.host;
			w_gt_content[data.id]['dpref'] = data.dpref;
			w_gt_content[data.id]['eps'] = data.eps;
			w_gt_content[data.id]['footer'] = data.footer_text;
			w_gt_content[data.id]['dvar'] = data.dvar; 
			if (data.mp3!=undefined) w_gt_content[data.id]['mp3'] = data.mp3;
			
			jQuery("head").append(jQuery("<link>").attr({
				href:data.host+"/wid_styles/style_"+data.dpref+data.dvar+".css",
				rel:"stylesheet",
				type:"text/css",
				media:"all"
			}));
			//наполняем контент
			contentBuilderConnect(data);			
	}
	
	function contentBuilderConnect(data)
	{
		//смотрим тип виджета, и подключаем соответствующий билдер.
		//если билдер уже подключен, то оставляем всё как есть.
		switch (data.data.type_id) {
			case "bugi": //bugi
				if (typeof buildWidgetContent_bugi == 'function') {
					buildWidgetContent_bugi(data.data.id);
					return;
				}
				break;
			case "const": //bugi
				if (typeof buildWidgetContent_const == 'function') {
					buildWidgetContent_const(data.data.id);
					return;
				}
				break;
			case "const_big": //bugi
				if (typeof buildWidgetContent_constbig == 'function') {
					buildWidgetContent_constbig(data.data.id);
					return;
				}
				break;
		}

		document.write("<scri"+""+"pt type=\"text/javascript\" src=\""+data.host+"/widget_"+data.data.type_id+".js\"></script>");
		callBuilder(data.data.type_id, data.data.id);
	}
	
	function callBuilder(flag, wid)
	{
		switch (flag) {
			case "bugi"://'bugi':
				if (typeof buildWidgetContent_bugi == 'function') {
					buildWidgetContent_bugi(wid);
					return;
				}
				break;
			case "const"://'bugi':
				if (typeof buildWidgetContent_const == 'function') {
					buildWidgetContent_const(wid);
					return;
				}
				break;
			case "const_big"://'bugi':
				if (typeof buildWidgetContent_constbig == 'function') {
					buildWidgetContent_constbig(wid);
					return;
				}
				break;
		}
		setTimeout("callBuilder('"+flag+"',"+wid+")",50);
	}
	
	function change_country(obj, wid)
	{
		var c = jQuery(obj).val();
		var pref_str = w_gt_numbers[wid][c].pref1+"";
		if (pref_str.length>5)
		{
			jQuery("#wgt_codeline_"+wid).addClass("small_code");
		}
		else
		{
			jQuery("#wgt_codeline_"+wid).removeClass("small_code");
		}
		jQuery("#wgt_prefix_"+wid).html(w_gt_numbers[wid][c].pref1);
		jQuery("#wgt_number_"+wid).html(w_gt_numbers[wid][c].num1);
	}
	
	function check_passw(wid)
	{
		var pass = jQuery("#wgt_pass_"+wid).val()
		pass = urlencode(pass);
		jQuery("#wgt_error_"+wid).hide();
		jQuery.ajax({
			  url: w_gt_content[wid].host,
			  data: {"act":"pass","w":wid,"p":pass},
			  //success: success,
			  dataType: 'script'
			});
	}
	
	function wrong_passw(wid)
	{
		jQuery("#wgt_error_"+wid).show();
	}
	
	function get_result(d)
	{
		var content = jQuery('#wgtu_content_'+d.id);
		content.html(jQuery("<div></div>").append(d.result));
	}
	
	function count(mixed_var) {
		var key, cnt = 0;
	    for (key in mixed_var) cnt++;
	    return cnt;
	}
	
	function serialize( mixed_value ) {
	    var _getType = function( inp ) {
	        var type = typeof inp, match;
	        var key;
	        if (type == 'object' && !inp) {
	            return 'null';
	        }
	        if (type == "object") {
	            if (!inp.constructor) {
	                return 'object';
	            }
	            var cons = inp.constructor.toString();
	            if (match = cons.match(/(\w+)\(/)) {
	                cons = match[1].toLowerCase();
	            }
	            var types = ["boolean", "number", "string", "array"];
	            for (key in types) {
	                if (cons == types[key]) {
	                    type = types[key];
	                    break;
	                }
	            }
	        }
	        return type;
	    };
	    var type = _getType(mixed_value);
	    var val, ktype = '';
	 
	    switch (type) {
	        case "function": 
	            val = ""; 
	            break;
	        case "undefined":
	            val = "N";
	            break;
	        case "boolean":
	            val = "b:" + (mixed_value ? "1" : "0");
	            break;
	        case "number":
	            val = (Math.round(mixed_value) == mixed_value ? "i" : "d") + ":" + mixed_value;
	            break;
	        case "string":
	            val = "s:" + mixed_value.length + ":\"" + mixed_value + "\"";
	            break;
	        case "array":
	        case "object":
	            val = "a";
	            var count = 0;
	            var vals = "";
	            var okey;
	            var key;
	            for (key in mixed_value) {
	                ktype = _getType(mixed_value[key]);
	                if (ktype == "function") { 
	                    continue; 
	                }
	 
	                okey = (key.match(/^[0-9]+$/) ? parseInt(key) : key);
	                vals += serialize(okey) +
	                        serialize(mixed_value[key]);
	                count++;
	            }
	            val += ":" + count + ":{" + vals + "}";
	            break;
	    }
	    if (type != "object" && type != "array") val += ";";
	    return val;
	}

	function urlencode(text)
	{
	  var trans = [];
	  for (var i=0x410; i<=0x44F; i++) trans[i] = i-0x350;
	  trans[0x401] = 0xA8;
	  trans[0x451] = 0xB8;
	  var ret = [];
	  for (var i=0; i<text.length; i++)
	  {
	    var n = text.charCodeAt(i);
	    if(typeof trans[n] != 'undefined') n = trans[n];
	    if(n <= 0xFF) ret.push(n);
	  }
	  return escape(String.fromCharCode.apply(null,ret));
	}
