public void OnChangePowerButtonsClick(int index)
    {
        m.Play_Click();
        ChangePowerPanel.GetComponent <Animator> ().SetBool("show", false);
        switchObjects [0].GetComponent <DotScript> ().SetScrambledNew(index, switchObjects[0].GetComponent <DotScript>().isOfferingCoin);

        temp_switch_int = 0;
        switchObjects.Clear();
        currentPower = Powers.None;

        OnPowerPanelClose();
    }
    public void CancleChangePower()
    {
        m.Play_Click();
        currentPower = Powers.None;

        ChangePowerHelper.SetActive(false);
        if (switchObjects.Count > 0)
        {
            ChangePowerPanel.GetComponent <Animator> ().SetBool("show", false);
        }

        temp_switch_int = 0;
        switchObjects.Clear();

        m.UpdatePowerCharge(powerPlate, 50);

        OnPowerPanelClose();
    }
    // this function is called everytime user points down on any of the boxes
    public void OnAnyDotDown(GameObject hit)
    {
        if (currentPower == Powers.Destroy)
        {
            DestroyKey(hit);
            currentPower = Powers.None;
            OnPowerPanelClose();
            DestroPowerHelper.SetActive(false);
            Invoke("UpdateNames", 0.5f);
            return;
        }
        else if (currentPower == Powers.Change && temp_switch_int == 0)
        {
            temp_switch_int = 1;
            switchObjects.Add(hit);
            ChangePowerPanel.GetComponent <Animator> ().SetBool("show", true);
            ChangePowerHelper.SetActive(false);
            return;
        }
        else if (currentPower == Powers.Switch && temp_switch_int < 2)
        {
            hit.GetComponent <Animator> ().SetBool("inc", true);
            temp_switch_int++;
            switchObjects.Add(hit);

            if (temp_switch_int == 2)
            {
                SetKinematic(true);

                Vector3 v1 = switchObjects [0].transform.position;
                Vector3 v2 = switchObjects [1].transform.position;

                string s1 = switchObjects [0].name;
                string s2 = switchObjects [1].name;

                switchObjects [0].name = s2;
                switchObjects [1].name = s1;

//				switchObjects [0].GetComponent<Rigidbody2D> ().isKinematic = true;
//				switchObjects [1].GetComponent<Rigidbody2D> ().isKinematic = true;


                switchObjects [0].GetComponent <DotScript> ().MoveTo(v2);
                switchObjects [1].GetComponent <DotScript> ().MoveTo(v1);

                SwitchPowerHelper.SetActive(false);
            }
            return;
        }

        if (isPaused)
        {
            return;
        }


        if (!touchStarted)
        {
            m.Play_DotSelect();

            touchStarted = true;
            currentChain.Add(hit);
            hit.GetComponent <DotScript> ().selected = true;
            hit.transform.GetChild(0).gameObject.SetActive(true);
            MainLine.transform.position = hit.transform.position;
            MainLine.positionCount      = currentChain.Count;
            MainLine.SetPosition(currentChain.Count - 1, hit.transform.position);
        }
        else
        {
            if (currentChain.Count > 2 && hit == currentChain [currentChain.Count - 2])
            {
                GameObject wo = currentChain [currentChain.Count - 1];
                currentChain.Remove(wo);
                wo.transform.GetChild(0).gameObject.SetActive(false);
                wo.GetComponent <DotScript> ().selected = false;
                MainLine.positionCount -= 1;
                wo.GetComponent <DotScript> ().ChildImage.gameObject.SetActive(false);
            }
            else if (Neighbour(hit.name) && hit.GetComponent <DotScript>().currentvalue == currentChain[0].GetComponent <DotScript>().currentvalue&& !hit.GetComponent <DotScript>().selected)
            {
                m.Play_DotSelect();
                currentChain.Add(hit);
                hit.transform.GetChild(0).gameObject.SetActive(true);
                hit.GetComponent <DotScript> ().selected = true;
                MainLine.positionCount = currentChain.Count;
                MainLine.SetPosition(currentChain.Count - 1, hit.transform.position);
            }
        }
    }