/**
  *  VLG Navigator jQuery Based Java Script Application
  *
  * version:      1.0 beta
  * jQuery ver.:  1.2.3
  * last update:  21.04.2008
  * author:       Web++
  * url:          http://www.webpp.ru
  * blog:         http://www.codeisart.ru
  *
**/
 
/**
  * Global Variables
**/
var defaultSearch = 1;
var advance = 1;
var host = document.location.hostname;

/**
  * Execute Functions When Document Object Model Ready
**/
$(document).ready(function() {
	advancedSearch();
	listView();
	externalLinks();
	zebraTable();
	noscript();
	ajaxForm();
	regionSelector();
	if ($('#sociable').is('div')) sociable();
	$("#owner").replaceWith('<a title="Создание сайтов Волгоград" href="http://www.webpp.ru/">Создание сайтов Волгоград</a>');
});

function ajaxForm() {}
/**
  * Advanced Search Functions
**/
function advancedSearch() {
	if (defaultSearch == 1) {
		$('#searchForm').attr('action', '/catalog/search/');
		$('#state-1').attr('class', 'esChecked');
		$('#state-2').attr('class', 'esUnChecked');
		$('#state-3').attr('class', 'esUnChecked');
	}	else if (defaultSearch == 2) {
		$('#searchForm').attr('action', '/ad/search/');
		$('#state-1').attr('class', 'esUnChecked');
		$('#state-2').attr('class', 'esChecked');
		$('#state-3').attr('class', 'esUnChecked');
	} else {
		$('#searchForm').attr('action', '/news/search/');
		$('#state-1').attr('class', 'esUnChecked');
		$('#state-2').attr('class', 'esUnChecked');
		$('#state-3').attr('class', 'esChecked');
	}
	$("#advanced-search input[type='text']").focus(function() {
		$(this).select();
	});
	$("#advanced-search label").each(function() {
		$(this).click(function() {
			var target = $(this).attr('for');
			$(this).next($(target)).select();
		});
	});
	$('#advanced-search-text').focus(function() {
		$(this).attr('class', 'esfocus');
	});
	$('#advanced-search-text').blur(function() {
		$(this).attr('class', 'esblur');
	});
	
	$('#state-1').click(function() {
		if($('#state-1').attr('class') != 'esChecked') {
			$('#searchForm').attr('action', '/catalog/search/');
			$('#state-1').attr('class', 'esChecked');
			$('#state-2').attr('class', 'esUnChecked');
			$('#state-3').attr('class', 'esUnChecked');
		}
	});
	$('#state-2').click(function() {
		if($('#state-2').attr('class') != 'esChecked') {
			$('#searchForm').attr('action', '/ad/search/');
			$('#state-1').attr('class', 'esUnChecked');
			$('#state-2').attr('class', 'esChecked');
			$('#state-3').attr('class', 'esUnChecked');
		}
	});
	$('#state-3').click(function() {
		if($('#state-3').attr('class') != 'esChecked') {
			$('#searchForm').attr('action', '/news/search/');
			$('#state-1').attr('class', 'esUnChecked');
			$('#state-2').attr('class', 'esUnChecked');
			$('#state-3').attr('class', 'esChecked');
		}
	});
	$("#searchForm input[type='submit']:disabled").removeAttr('disabled');
	$('#advanced-search-text').focus();
}

function getSubPartsSearch(id) {
	if((id != 0) && (id != '')) {
		var url = host + "ajax.php?page=search&act=SubPartsList";
		var postData = {pid : id};
		$.post(url, postData, function(data) {
			$("#subParts").empty();
			$("#subParts").append(data);
		});
		return false;
	}
}

/**
  * External Links
**/
function externalLinks() {
	$(".conteiner a[href^='http://']:not([href*='" + host + "'])").each(function() {
		$(this).click(function() {
			window.open($(this).attr('href'));
			return false;
		});
	});

	$("a[rel='external']").click(function() {
			window.open($(this).attr('href'));
			return false;
	});
}

function regionSelector() {
	$('#region-selector > select').click(function (){
		var val = $(this).val();
		var subpart = document.location.pathname.split(/\//)[3];
		if (val == 0)
			var href = '#';
		else if (val == 'all')
			var href = '/catalog/subpart/'+subpart+'/';
		else
			var href = '/catalog/subpart/'+subpart+'/region/'+val+'/';
		$('#region-selector > a').attr({href: href});
	});
}
/**
  * Zebra Table :D
**/
function zebraTable() {
	$("table tbody tr:odd").addClass("odd");
}

/**
  * ListView
**/
function listView() {
	$("ul.listView li:odd").addClass("odd");
}

/**
  * Delete NoScript Elements
**/
function noscript() {
	$('.noscript').remove();
}

/**
  * Add New Advertising Form
**/

function responseAct(data) {
	if(/error/.test(data)) {
		var errors = data.split('|');
		var errorMassage = '';
		for (var i=1; i < errors.length; i++) {
			errorMassage += errors[i]+'<br />';
		}
    $('#addAdDiv').prepend('<div class="search-result" id="errorMsg">' + errorMassage + '</div>');
	}
	else {
    $('#addAdForm').resetForm();
    $('#addAdDiv').prepend('<div class="search-result">' + data + '</div>');
	}
}

/**
  * Resizer (No jQuery)
**/
Resize = {
	addEvent: function(t,ev,fn)
	{
		if (typeof document.addEventListener != 'undefined')
		{
			t.addEventListener(ev,fn,false);
		}
		else
		{
			t.attachEvent('on' + ev, fn);
		}
	},
	removeEvent: function(t,ev,fn)
	{
		if (typeof document.removeEventListener != 'undefined')
		{
			t.removeEventListener(ev,fn,false);
		}
		else
		{
			t.detachEvent('on' + ev, fn);
		}
	},
	init: function(nid, worker)
	{
		Resize.worker = document.getElementById(worker);
		Resize.worker.style.cursor = 's-resize';
	
		Resize.targetElement = document.getElementById(nid);
		Resize.addEvent(document, 'mousedown', Resize.initResize);
	},
	initResize: function(event)
	{
		if (typeof event == 'undefined')
		{
			event = window.event;
		}

			Resize.targetElement.startHeight = Resize.targetElement.clientHeight;
			Resize.targetElement.startY = event.clientY;
			Resize.addEvent(document, 'mousemove', Resize.resize);
			Resize.addEvent(document, 'mouseup', Resize.stopResize);
		
			try
			{
				event.preventDefault();
			}
			catch(e)
			{
			}
	},
	resize: function(event)
	{
		if (typeof event == 'undefined')
		{
			event = window.event;
		}

		Resize.targetElement.style.height = event.clientY - Resize.targetElement.startY + Resize.targetElement.startHeight + 'px';
	},
	stopResize: function(event)
	{
		Resize.removeEvent(document, 'mousedown', Resize.initResize);
		Resize.removeEvent(document, 'mousemove', Resize.resize);
		Resize.worker.style.cursor = 'text';
	}
};

/**
  * Get E-mail
**/
function showEmail(id, type) {
  $.ajax({
    type: "POST",
    url: "/ajax/show-email/",
    data: {id: id, type: type},
    dataType: "json",
    success: function (data) {
      if (data['error'] == false){
				var target = (type == 'org') ? '#org_mail' : '#office_mail_'+id ;
        $(target).empty();
				$(target).append('<a href="mailto:'+data['email']+'" class="mail">'+data['email']+'</a>');
      } else {
        statMsg (data['error'], 'error');
      }
    }
  });
  return false;
}


/**
  * Insert Flash
**/

function insertFlash(node, url, width, height, params) {
  var object, param, key;
  function newParam(name, value) {
    if(0 /*@cc_on + 1 @*/) return ['<PARAM name="', name, '" value="', value, '" />'].join('');
    else {
      param = document.createElement('param');
      param.name = name;
      param.value = value;
      return param;
    }
  }
  if(0 /*@cc_on + 1 @*/) {
    object = ['<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="', width, '" height="', height, '"><PARAM name="movie" value="', url, '" />'];
    if(params) for(key in params) if(params.hasOwnProperty(key)) object.push(newParam(key, params[key]));
    object.push('</OBJECT>');
    node.innerHTML = object.join('');
  }
  else {
    object = document.createElement('object');
    object.type = 'application/x-shockwave-flash';
    object.data = url;
    object.width = width;
    object.height = height;
    if(params) for(key in params) if(params.hasOwnProperty(key)) object.appendChild(newParam(key, params[key]));
    while(node.firstChild) node.removeChild(node.firstChild);
    node.appendChild(object);
  }
}

/**
  * Advanced Information

function showFullInfo(id){
	var newWindowOptions = "menubar,resizable,scrollbars,statusbar,height=500,width=700";
	var newWindow = window.open("http://"+document.location.hostname+"/map/info.php?id="+id, "Full_Info", newWindowOptions);
	newWindow.focus();
	return false;
}
**/
/**
  * Sociable Boockmarks
**/
function sociable() {
	
	var bookmarks = {
		services: {
			delicious: {
				name: 'Del.icio.us',
				url: 'http://del.icio.us/post?url={url}&title={title}'
			},
			bobrdobr: {
				name: 'BobrDobr',
				url: 'http://bobrdobr.ru/addext.html?url={url}&title={title}'
			},
			memori: {
				name: 'Memori',
				url: 'http://memori.ru/link/?sm=1&u_data[url]={url}&u_data[name]={title}'
			},
			news2: {
				name: 'News2',
				url: 'http://news2.ru/add_story.php?url={url}'
			},
			vaau: {
				name: 'Ваау!',
				url: 'http://www.vaau.ru/submit/?action=step2&url={url}'
			},
			korica: {
				name: 'Korica',
				url: 'http://korica.info/add_story.php?story_url={url}'
			},
			mrwong: {
				name: 'Mister Wong',
				url: 'http://www.mister-wong.ru/index.php?action=addurl&bm_url={url}&bm_description={title}'
			},
			reddit: {
				name: 'Reddit',
				url: 'http://ru.reddit.com/submit?url={url}&title={title}'
			},
			magmolia: {
				name: 'Ma.gnolia',
				url: 'http://ma.gnolia.com/beta/bookmarklet/add?url={url}&title={title}'
			},
			digg: {
				name: 'Digg',
				url: 'http://digg.com/submit?phase=2&url={url}&title={title}'
			},
			google: {
				name: 'Закладки Google',
				url: 'http://www.google.com/bookmarks/mark?op=add&bkmk={url}&title={title}'
			},
			technorati: {
				name: 'Technorati',
				url: 'http://technorati.com/faves?add={url}'
			},
			moemesto: {
				name: 'Моё место',
				url: 'http://moemesto.ru/post.php?url={url}&title={title}'
			},
			ruspace: {
				name: 'RuSpace',
				url: 'http://www.ruspace.ru/index.php?link=bookmark&action=bookmarkNew&bm=1&url={url}&title={title}'
			},
			linkstore: {
				name: 'LinkStore',
				url: 'http://linkstore.ru/servlet/LinkStore?a=add&url={url}&title={title}'
			},
			yandex: {
				name: 'Яндекс.Закладки',
				url: 'http://zakladki.yandex.ru/userarea/links/addfromfav.asp?bAddLink_x=1&lurl={url}&lname={title}'
			},
			yahoo: {
				name: 'Yahoo',
				url: 'http://myweb2.search.yahoo.com/myresults/bookmarklet?u={url}&t={title}'
			}
		},
		insert: function(id, url, title) {
			var ul = $('<ul></ul>').addClass(id);
			$.each(this.services, function(key, value){				
				$(ul).append($('<li></li>').append($('<a></a>').addClass(key).attr({href: value.url.replace(/\{url\}/, url).replace(/\{title\}/, title), title: 'Добавить в ' + value.name, rel: 'external nofollow'}).append($('<span></span>').text(value.name))));
      });
			$('#sociable').append(ul).append('<p>Социальные закладки позволяют пользователям хранить и систематизировать закладки в Интернете, делиться и обмениваться закладками с друзьями.</p>');
		}		
	}
	
	$('#sociable').empty().append('<div>Добавить в закладки</div>');
	bookmarks.insert('sociable',document.location.href,document.title);
}
