ModalForm = new Object();

ModalForm.Init = function(){
    ModalForm.Navigator = navigator.appName;
    ModalForm.ContentShadowActive = false;
    ModalForm.ScreenShadowActive = false;
    ModalForm.FormActive = false;
    ModalForm.MoveStart = false;
    ModalForm.SendUrl = '../control/send_message.php';
    ModalForm.IsLoad = true;
}

ModalForm.Draws = function(width, height, content, select){
    var div = document.createElement('div');
	div.style.position = 'absolute';
	div.style.zIndex = 10;
	div.innerHTML = "<table id='md_form' style='width:"+width+"px; height:"+height+"px'><tr><td id='md_form_header' style='height:15px'>"+(!window.pageLang?'Contact Us':'Связаться с нами')+"</td><td id='md_form_close'><img src='/img/modal/_.gif' align='right'></td></tr><tr><td colspan='2' id='md_form_info'></td></tr></table>";
	document.body.appendChild(div);

	ModalForm.Form = div;
	ModalForm.Header = $('md_form_header');
	ModalForm.Content = $('md_form_info');
	ModalForm.Content.innerHTML = content;
	ModalForm.Close = $('md_form_close');
	ModalForm.Width = width;
	ModalForm.Height = height;
	ModalForm.FormActive = true;
	ModalForm.Select = select || false;
	ModalForm.ScreenShadow();
	Event.observe(ModalForm.Close, 'click', ModalForm.CloseForm);
	ModalForm.EventMove = function(e){
		ModalForm.Move(e);
	}

	Event.observe(ModalForm.Header, 'mousedown', ModalForm.EventMoveActivate);
	Event.observe(ModalForm.Header, 'mouseup', ModalForm.EventMoveInActivate);
	if(select == 'select'){
		ModalForm.SelectedItemList = new Array();
		ModalForm.Select = select;
		ModalForm.SelectActive();
	}
	else{
		if(select == 'all'){
			ModalForm.SelectedItemList = new Array();
			ModalForm.Select = select;
			ModalForm.SelectActive();
			ModalForm.SelectAll();
		}
	}
}

ModalForm.EventMoveActivate = function(){
    Event.observe(ModalForm.Header, 'mousemove', ModalForm.EventMove);
    Event.observe(document.body, 'mousemove', ModalForm.EventMove);
    ModalForm.MoveStart = true;
}

ModalForm.EventMoveInActivate = function(){
    Event.stopObserving(ModalForm.Header, 'mousemove', ModalForm.EventMove);
    Event.stopObserving(document.body, 'mousemove', ModalForm.EventMove);
    ModalForm.MoveStart = false;
}

ModalForm.ScreenShadow = function(){
    var shadow = document.createElement('div');
	shadow.style.position = 'absolute';
	shadow.style.height = '100%';
	shadow.style.width = '100%';
	shadow.style.left = '0px';
	shadow.style.top = '0px';
	shadow.style.backgroundColor = '#000000';
	shadow.style.zIndex = 5
	shadow.innerHTML = '&nbsp;';

	if(ModalForm.Navigator == 'Netscape' || ModalForm.Navigator == 'Opera'){
		shadow.style.opacity = 0.65;
	}
	else{
		shadow.style.filter = 'alpha(opacity=65)';
	}

	document.body.appendChild(shadow);

	ModalForm.ScreenShadowElement = shadow;
	ModalForm.ScreenShadowActive = true;
	ModalForm.SetPosition();
	Event.observe(window, 'scroll', ModalForm.SetPosition);
	Event.observe(document.body, 'mousewheel', ModalForm.SetPosition);
}

ModalForm.Success  = function()
{
    ModalForm.Header.innerHTML = !window.pageLang?'Your message was successfully sent!':'Ваше сообщение успешно отправлено!';
    ModalForm.MoveStart = false;
}

ModalForm.ContentShadow = function()
{
    var div = document.createElement('div');
	div.style.position = 'absolute';
	div.style.backgroundColor = '#000000';
	div.style.zIndex = 15;
	div.style.innerHTML = '&nbsp;';
	div.id = 'content_shadow';

	if(ModalForm.Navigator == 'Netscape' || ModalForm.Navigator == 'Opera'){
		div.style.opacity = 0.65;
	}
	else{
		div.style.filter = 'alpha(opacity=65)';
	}

	ModalForm.ContentShadowWidth = ModalForm.Width - 2;
	ModalForm.ContentShadowHeight = ModalForm.Height - 28;

	div.style.width = ModalForm.ContentShadowWidth + 'px';
	div.style.height = ModalForm.ContentShadowHeight + 'px';
	document.body.appendChild(div);

	ModalForm.ContentShadowElement = div;
	ModalForm.ContentShadowActive = true;
	ModalForm.SetPosition();
}

ModalForm.SetPosition = function(){
	ModalForm.ScreenShadowElement.style.top = document.documentElement.scrollTop+'px';
	ModalForm.Form.style.left = ((document.documentElement.clientWidth/2)-(ModalForm.Width/2)) + 'px';
	ModalForm.Form.style.top = ((document.documentElement.clientHeight/2)-(ModalForm.Height/2)) + document.documentElement.scrollTop+'px';

	if(document.body.scrollTop != 0 && navigator.appCodeName == 'Mozilla'){
		ModalForm.ScreenShadowElement.style.top = document.body.scrollTop+'px';
		ModalForm.Form.style.top = ((document.documentElement.clientHeight/2)-(ModalForm.Height/2)) + document.body.scrollTop+'px';
	}

    if(ModalForm.ContentShadowActive == true){
        ModalForm.ContentShadowElement.style.left = ((document.documentElement.clientWidth/2)-(ModalForm.ContentShadowWidth/2)) + 'px';
        ModalForm.ContentShadowElement.style.top = ((document.documentElement.clientHeight/2)-(ModalForm.ContentShadowHeight/2))+ 14 +document.documentElement.scrollTop+'px';

        if(document.body.scrollTop != 0 && navigator.appCodeName == 'Mozilla'){
            ModalForm.ContentShadowElement.style.top = ((document.documentElement.clientHeight/2)-(ModalForm.ContentShadowHeight/2))+ 14 +document.body.scrollTop+'px';
        }
    }
}


ModalForm.CloseForm = function()
{
    if(ModalForm.ContentShadowActive == true){
        ModalForm.ContentShadowElement.parentNode.removeChild(ModalForm.ContentShadowElement);
        ModalForm.ContentShadowActive = false;
    }

    if(ModalForm.ScreenShadowActive == true){
        ModalForm.ScreenShadowElement.parentNode.removeChild(ModalForm.ScreenShadowElement);
        ModalForm.ScreenShadowActive = false;
    }

    if(ModalForm.FormActive == true){
        ModalForm.Form.parentNode.removeChild(ModalForm.Form);
        ModalForm.FormActive = false;
        Event.stopObserving(window, 'scroll', ModalForm.SetPosition);
    }
}


ModalForm.Move = function(e){
    var event = e || window.event;
    if(ModalForm.MoveStart){    ModalForm.Form.style.left = -150 + event.clientX + 'px';
        ModalForm.Form.style.top = -10 + event.clientY + document.documentElement.scrollTop + 'px';

        if(document.body.scrollTop != 0 && navigator.appCodeName == 'Mozilla'){
            ModalForm.Form.style.top = -10 + event.clientY + document.body.scrollTop + 'px';
        }

        if(ModalForm.ContentShadowActive == true){
            ModalForm.ContentShadowElement.style.left = -150 + event.clientX + 'px';
            ModalForm.ContentShadowElement.style.top = 18 + event.clientY + document.documentElement.scrollTop + 'px';

            if(document.body.scrollTop != 0 && navigator.appCodeName == 'Mozilla'){
            ModalForm.ContentShadowElement.style.top = 18 + event.clientY + document.body.scrollTop + 'px';
			}
        }
    }
}

ModalForm.TestEmail = function(mail){
	 var Email = mail;

     var mailPart1 = Email.split('@');

	if(mailPart1.length!=2 || mailPart1[0].length < 2 || mailPart1[1].length < 2){
		 return false;
	}
	else{
		 var mailPart2 = mailPart1[1].split('.');

		if(mailPart2.length!=2 || mailPart2[0].length < 2 || mailPart2[1].length < 2){
			return false;
		}
		else{
			if(Email.length < 5){
				return false;
			}
			else{
			 return true;
			}
		}
	}
}

ModalForm.TestMessage = function(message){
    if(message.length > 10){
        return true;
    }
    else{
        return false;
    }
}


ModalForm.SelectActive = function(){
    ModalForm.SelectImgList = $('select_list').getElementsByTagName('img');
    ModalForm.SelectSpanList = $('select_list').getElementsByTagName('span');
    ModalForm.SelectImgLast = ModalForm.SelectImgList[ModalForm.SelectImgList.length-1];
    ModalForm.SelectSpanLast = ModalForm.SelectSpanList[ModalForm.SelectImgList.length-1];

    var count = ModalForm.SelectImgList.length;
    ModalForm.Select == 'all' ? count-=1 : count=count;


    for(i=0; i<count; i++){
        ModalForm.addSelectEvent(ModalForm.SelectImgList[i], ModalForm.SelectSpanList[i]);
    }
}

ModalForm.getSelectStatus = function(el){
    var src = el.src;
	src = src.split('/');
	src = src[src.length - 1];

    if(src == 'chk.png'){
        return false;
    }
    else{
        return true;
    }
}

ModalForm.addSelectEvent = function(el, span){
    Event.observe(el, 'click', function(){
		ModalForm.SelectCheck(el);
	});

    Event.observe(span, 'click', function(){
		ModalForm.SelectCheck(el);
	});
}

ModalForm.SelectCheck = function(el){
    if(ModalForm.getSelectStatus(el)){
        el.src='../img/modal/chk.png';

        if(ModalForm.Select == 'all'){
            ModalForm.SelectImgLast.src = '../img/modal/chk.png';
        }
    }
    else{
        el.src='../img/modal/chk_a.png';
    }
}

ModalForm.SelectAll = function(){
    Event.observe(ModalForm.SelectImgLast, 'click', ModalForm.SelectCheckAll);
}

ModalForm.SelectCheckAll = function(){
    for(i=0; i<ModalForm.SelectImgList.length; i++){
        ModalForm.SelectImgList[i].src = '../img/modal/chk_a.png';
    }

    ModalForm.SelectImgLast.src = '../img/modal/chk_a.png';
}

ModalForm.SelectedItem = function(){
    ModalForm.SelectedItemList.clear();
    var count_list = ModalForm.SelectImgList.length;
    count_list = ModalForm.Select == 'all' ? count_list-1 : count_list;

    for(i=0; i<count_list; i++){
        var src = ModalForm.SelectImgList[i].src.split('/');
        src = src[src.length - 1];

		if(src == 'chk_a.png'){
			ModalForm.SelectedItemList[ModalForm.SelectedItemList.length] = ModalForm.SelectSpanList[i].innerHTML.split(';')[1];
		}
    }
    return ModalForm.SelectedItemList.toJSON();
}

createIFrame = function() {
  var id = 'f' + Math.floor(Math.random() * 99999);
  var div = document.createElement('div');
  div.innerHTML = '<iframe style="display:none" src="about:blank"'+'id="'+id+'" name="'+id+'"></iframe>';
  document.body.appendChild(div);
  Event.observe($(id), 'load', function(){sendComplete(id);});

  return document.getElementById(id);
}

sendForm = function(form, url, func, arg) {
  if (!document.createElement) return; // not supported
  if (typeof(form)=="string") {form=document.getElementById(form);}
  var frame=createIFrame();

  frame.onSendComplete = function(){
    func(arg, getIFrameXML(frame));
  };

  form.target = frame.id;
  form.action = url;
  form.setAttribute('target', frame.id);
  form.setAttribute('action', url);
  form.submit();
}

sendComplete = function(id) {
    var iframe=document.getElementById(id);
        iframe.onSendComplete();
}

getIFrameXML = function(iframe) {
  var doc=iframe.contentDocument;
  if (!doc && iframe.contentWindow) doc=iframe.contentWindow.document;
  if (!doc) doc=window.frames[iframe.id].document;
  if (!doc) return null;
  if (doc.location=="about:blank") return null;
  if (doc.XMLDocument) doc=doc.XMLDocument;
  iframe.parentNode.removeChild(iframe);
  return doc;
}

Event.observe(window, 'load', ModalForm.Init);
